Thermostat having network connected branding features

ABSTRACT

A thermostat for a building space includes a communications interface, an electronic display, and a processing circuit. The communications interface is configured to receive service provider information via a network connection. The electronic display includes a user interface configured to display the service provider information. The processing circuit is configured to determine when to display the service provider information on the electronic display by monitoring thermostat events.

CROSS-REFERENCE TO RELATED PATENT APPLICATION

This application claims the benefit of and priority to U.S. ProvisionalPatent Application No. 62/217,788 filed Sep. 11, 2015, U.S. ProvisionalPatent Application No. 62/217,789 filed Sep. 11, 2015, U.S. ProvisionalPatent Application No. 62/217,790 filed Sep. 11, 2015, U.S. ProvisionalPatent Application No. 62/217,791 filed Sep. 11, 2015, U.S. ProvisionalPatent Application No. 62/367,597 filed Jul. 27, 2016, U.S. ProvisionalPatent Application No. 62/367,315 filed Jul. 27, 2016, U.S. ProvisionalPatent Application No. 62/367,614 filed Jul. 27, 2016, U.S. ProvisionalPatent Application No. 62/367,297 filed Jul. 27, 2016, U.S. ProvisionalPatent Application No. 62/367,621 filed Jul. 27, 2016, U.S. ProvisionalPatent Application No. 62/367,291 filed Jul. 27, 2016, U.S. ProvisionalApplication No. 62/247,672 filed Oct. 28, 2015, and U.S. ProvisionalApplication No. 62/275,711 filed Jan. 6, 2016. The entire disclosure ofeach of these patent applications is incorporated by reference herein.

BACKGROUND

The present disclosure relates generally to thermostats and moreparticularly to the improved control of a building or home's heating,ventilating, and air conditioning (HVAC) system through occupancydetection.

A thermostat is, in general, a component of an HVAC control system.Thermostats sense the temperature of a system and control components ofthe HVAC in order to maintain a desired setpoint. A thermostat cancontrol a heating or cooling system or an air conditioner. Thermostatsare manufactured in many ways, and use a variety of sensors to measuretemperature and other desired parameters.

Conventional thermostats are configured for one-way communication toconnected components, and control HVAC systems by turning on or offcertain components or regulating flow. Each thermostat may include atemperature sensor and a user interface. The user interface typicallyincludes a display for presenting information to a user and one or moreuser interface elements for receiving input from a user. To control thetemperature of a building or home, a user adjusts the temperaturesetpoint via the thermostat's user interface.

SUMMARY

In one aspect, embodiments of the inventive concepts disclosed hereinare directed to a thermostat for a building space. The thermostatincludes a communications interface, an electronic display, and aprocessing circuit. The communications interface is configured toreceive service provider information via a network connection. Theelectronic display includes a user interface configured to display theservice provider information. The processing circuit is configured todetermine when to display the service provider information on theelectronic display by monitoring thermostat events.

In a further aspect, embodiments of the inventive concepts disclosedherein are directed to a method for operating a network brandedthermostat. The method includes receiving customized branding via anetwork connection of the thermostat. The method further includesdetermining when to display the customized branding on the electronicdisplay by monitoring thermostat events. The method further includesdisplaying the customized branding on an electronic display of thethermostat in response to detecting one or more of the thermostatevents.

In a further aspect, embodiments of the inventive concepts disclosedherein are directed to a dealer configured thermostat for a buildingspace. The thermostat includes a communications interface, an electronicdisplay, and a processing circuit. The communications interface isconfigured to receive dealer information via a network connection. Theelectronic display includes a user interface configured to display thedealer information. The processing circuit is configured to determinewhen to display the dealer information on the electronic display bymonitoring events of the thermostat.

Those skilled in the art will appreciate that the summary isillustrative only and is not intended to be in any way limiting. Otheraspects, inventive features, and advantages of the devices and/orprocesses described herein will become apparent in the detaileddescription set forth herein and taken in conjunction with theaccompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

Implementations of the inventive concepts disclosed herein may be betterunderstood when consideration is given to the following detaileddescription thereof. Such description makes reference to the annexeddrawings, which are not necessarily to scale, and in which some featuresmay be exaggerated and some features may be omitted or may berepresented schematically in the interest of clarity. Like referencenumerals in the figures may represent and refer to the same or similarelement, feature, or function. In the drawings:

FIG. 1 is an illustration of a commercial or industrial HVAC system thatemploys heat exchangers, according to an exemplary embodiment.

FIG. 2 is an illustration of a residential HVAC system that employs heatexchangers, according to an exemplary embodiment.

FIG. 3 is a block diagram of a HVAC system that employs a control devicesuch as a thermostat, according to an exemplary embodiment.

FIG. 4 is a block diagram of a prior art system for controlling thetemperature of a building space using a wall-mounted thermostat,according to an exemplary embodiment.

FIG. 5 is a flowchart of a prior art process for controlling thetemperature of a building space using a wall-mounted thermostat,according to an exemplary embodiment.

FIG. 6 is a block diagram of a thermostat with which a user may controlthe temperature of a building space according to an exemplaryembodiment.

FIG. 7 is a system block diagram of a processing circuit of a thermostatand a remote data storage location according to an exemplary embodiment.

FIG. 8 is a drawing of a thermostat and its user interface elementsaccording to an exemplary embodiment.

FIG. 9 is a drawing of the various user interfaces through which a usermay control a thermostat according to an exemplary embodiment.

FIG. 10A is a drawing of various skins and configurations of the userinterface of a thermostat according to an exemplary embodiment.

FIG. 10B is a drawing of a process in which user interface elements of athermostat may be relocated or redefined according to an exemplaryembodiment.

FIG. 11A is a drawing of a process in which a thermostat detectsoccupancy according to an exemplary embodiment.

FIG. 11B is a flowchart of the process shown in FIG. 11A according to anexemplary embodiment.

FIG. 12A is a flowchart of a process in which a thermostat uses scheduledata to determine occupancy according to an exemplary embodiment.

FIG. 12B is a drawing of various applications and their user interfacesthrough which a thermostat may obtain schedule data and determineoccupancy according to an exemplary embodiment.

FIG. 12C is a drawing of a scheduling screen of a thermostat, throughwhich the process of handling multiple occupancy homes is shownaccording to an exemplary embodiment.

FIG. 13 is a drawing of a process in which a thermostat system adjuststhe temperature of a home to a user's preferences prior to her arrivalat home according to an exemplary embodiment.

FIG. 14 is a drawing of a process in which a thermostat system adjustscompressor staging using occupancy according to an exemplary embodiment.

FIG. 15A is a drawing of a process in which a thermostat communicateswith a user's personal electronic device via NFC according to anexemplary embodiment.

FIG. 15B is a flowchart of the process described in FIG. 15A accordingto an exemplary embodiment.

FIG. 16A is a system diagram of the flow of information between anetwork, a thermostat, and a user's personal electronic device via NFCaccording to an exemplary embodiment.

FIG. 16B is a system diagram of the flow of information between anetwork, a thermostat, and a user's personal electronic device via NFCaccording to another exemplary embodiment.

FIG. 17 is a drawing of a process in which a thermostat prepares ananalytic report in advance of receiving a request via NFC for the reportaccording to an exemplary embodiment.

FIG. 18 is a drawing of a process in which a thermostat is locked andunlocked via NFC according to an exemplary embodiment.

FIG. 19 is a drawing of a process in which a thermostat changesoperation of a system using location data obtained via NFC according toan exemplary embodiment.

FIG. 20 is a drawing of a process in which a thermostat changesoperation of a system using feedback from a user obtained via NFCaccording to an exemplary embodiment.

FIG. 21 is a drawing of the flow of fault information between a piece ofequipment, a thermostat, and a device via NFC according to an exemplaryembodiment.

FIG. 22A is a drawing of a process in which a thermostat modifies itsuser interface and available features using user identification dataobtained via NFC according to an exemplary embodiment.

FIG. 22B is a drawing of a process in which a thermostat modifies itsuser interface and available features using user identification dataobtained via NFC according to another exemplary embodiment.

FIG. 23 is a drawing of a process in which a thermostat obtainsequipment-specific information via NFC according to an exemplaryembodiment.

FIG. 24 is a drawing of the devices with which a thermostat maycommunicate according to an exemplary embodiment.

FIG. 25 is a flowchart detailing the flow of information between athermostat, HVAC equipment, a network, and network-connected devices andservices according to an exemplary embodiment.

FIG. 26A is a drawing of user interfaces through which a thermostat maydisplay reports which compare and contrast a user's energy consumptionand behavior with other similar systems according to an exemplaryembodiment.

FIG. 26B is a drawing of processes through which a thermostat mayinteract with a user to affect the energy consumption and energy bill ofa building space according to an exemplary embodiment.

FIG. 26C is a flowchart detailing process of testing new settingsautomatically according to an exemplary embodiment.

FIG. 26D is a drawing of a process in which a thermostat alerts usersthat it is unable to reach a setpoint according to an exemplaryembodiment.

FIG. 27 is a drawing of various methods which a user may use to provideinput to a thermostat according to an exemplary embodiment.

FIG. 28 is a drawing of a process in which a thermostat receives acommand from a user through text message according to an exemplaryembodiment.

FIG. 29 is a drawing of a method which a thermostat may utilize socialmedia to determine occupancy according to an exemplary embodiment.

FIG. 30 is a drawing of a thermostat and its user interface throughwhich a brand may promote itself according to an exemplary embodiment.

FIG. 31 is a drawing of the social media presence of a thermostataccording to an exemplary embodiment.

FIG. 32 is a drawing of the analytics a thermostat may provide accordingto an exemplary embodiment.

FIG. 33 is a drawing of a thermostat and an external accessory accordingto an exemplary embodiment.

FIG. 34 is a flowchart of a process for determining if a setpoint isachievable, determining the time to reach a setpoint for an achievablesetpoint, and serving notifications to a user, according to an exemplaryembodiment.

FIG. 35 is a flowchart of a process for determining if a system faultcan be fixed by a homeowner, according to an exemplary embodiment.

FIG. 36 is a flowchart of a process for determining if setpointsselected by a user are efficient and suggesting energy efficientsetpoints to the user, according to an exemplary embodiment.

FIG. 37 is a flowchart of a process for updating and displaying adealers contact information, according to an exemplary embodiment.

DETAILED DESCRIPTION

Before describing in detail the inventive concepts disclosed herein, itshould be observed that the inventive concepts disclosed herein include,but are not limited to, a novel structural combination of data/signalprocessing components, sensors, and/or communications circuits, and notin the particular detailed configurations thereof. Accordingly, thestructure, methods, functions, control and arrangement of components,software, and circuits have, for the most part, been illustrated in thedrawings by readily understandable block representations and schematicdiagrams, in order not to obscure the disclosure with structural detailswhich will be readily apparent to those skilled in the art, having thebenefit of the description herein. Further, the inventive conceptsdisclosed herein are not limited to the particular embodiments depictedin the exemplary diagrams, but should be construed in accordance withthe language in the claims.

Referring generally to the FIGURES, systems and methods for a thermostatare shown according to various exemplary embodiments. The thermostat mayinclude a communications interface, an electronic display, and aprocessing circuit. The communications interface may be configured toreceive customized branding via a network connection. The electronicdisplay may include a user interface configured to display thecustomized branding. The processing circuit may be configured todetermine when to display the customized branding on the electronicdisplay by monitoring thermostat events.

Building with HVAC System and Thermostat

FIG. 1 illustrates an exemplary application, in this case an HVAC systemfor building environmental management that may be a communicating systememploying one or more control devices (e.g., thermostats) functioning assystem controllers. A building 10 is cooled by a system that includes achiller 12 and a boiler 14. As shown, chiller 12 is disposed on the roofof building 10 and boiler 14 is located in the basement; however, thechiller and boiler may be located in other equipment rooms or areas nextto the building. Chiller 12 is an air cooled or water cooled device thatimplements a refrigeration cycle to cool water. Chiller 12 may be astand-alone unit or may be part of a single package unit containingother equipment, such as a blower and/or integrated air handler. Boiler14 is a closed vessel that includes a furnace to heat water. The waterfrom chiller 12 and boiler 14 is circulated through building 10 by waterconduits 16. Water conduits 16 are routed to air handlers 18, located onindividual floors and within sections of building 10.

Air handlers 18 are coupled to ductwork 20 that is adapted to distributeair between the air handlers and may receive air from an outside intake(not shown). Air handlers 18 include heat exchangers that circulate coldwater from chiller 12 and hot water from boiler 14 to provide heated orcooled air. Fans, within air handlers 18, draw air through the heatexchangers and direct the conditioned air to environments withinbuilding 10, such as rooms, apartments, or offices, to maintain theenvironments at a designated temperature. A control device 22, shownhere as including a thermostat, may be used to designate the temperatureof the conditioned air. Control device 22 also may be used to controlthe flow of air through and from air handlers 18 and to diagnosemechanical or electrical problems with the air handlers 18. Otherdevices may, of course, be included in the system, such as controlvalves that regulate the flow of water and pressure and/or temperaturetransducers or switches that sense the temperatures and pressures of thewater, the air, and so forth. Moreover, the control device maycommunicate with computer systems that are integrated with or separatefrom other building control or monitoring systems, and even systems thatare remote from the building.

FIG. 2 illustrates a residential heating and cooling system. Theresidential heating and cooling system may provide heated and cooled airto a residential structure, as well as provide outside air forventilation and provide improved indoor air quality (IAQ) throughdevices such as ultraviolet lights and air filters. In general, aresidence 24 will include refrigerant conduits 26 that operativelycouple an indoor unit 28 to an outdoor unit 30. Indoor unit 28 may bepositioned in a utility room, an attic, a basement, and so forth.Outdoor unit 30 is typically situated adjacent to a side of residence 24and is covered by a shroud to protect the system components and toprevent leaves and other contaminants from entering the unit.Refrigerant conduits 26 transfer refrigerant between indoor unit 28 andoutdoor unit 30, typically transferring primarily liquid refrigerant inone direction and primarily vaporized refrigerant in an oppositedirection.

When the system shown in FIG. 2 is operating as an air conditioner, acoil in outdoor unit 30 serves as a condenser for recondensing vaporizedrefrigerant flowing from indoor unit 28 to outdoor unit 30 via one ofthe refrigerant conduits 26. In these applications, a coil of the indoorunit, designated by the reference numeral 32, serves as an evaporatorcoil. Evaporator coil 32 receives liquid refrigerant (which may beexpanded by an expansion device, not shown) and evaporates therefrigerant before returning it to outdoor unit 30.

Outdoor unit 30 draws in environmental air through its sides asindicated by the arrows directed to the sides of the unit, forces theair through the outer unit coil using a fan (not shown), and expels theair as indicated by the arrows above the outdoor unit. When operating asan air conditioner, the air is heated by the condenser coil within theoutdoor unit and exits the top of the unit at a temperature higher thanit entered the sides. Air is blown over indoor coil 32 and is thencirculated through residence 24 by means of ductwork 20, as indicated bythe arrows entering and exiting ductwork 20. The overall system operatesto maintain a desired temperature as set by system controller 22. Whenthe temperature sensed inside the residence is higher than the set pointon the thermostat (plus a small amount), the air conditioner will becomeoperative to refrigerate additional air for circulation through theresidence. When the temperature reaches the set point (minus a smallamount), the unit will stop the refrigeration cycle temporarily.

When the unit in FIG. 2 operates as a heat pump, the roles of the coilsare simply reversed. That is, the coil of outdoor unit 30 will serve asan evaporator to evaporate refrigerant and thereby cool air enteringoutdoor unit 30 as the air passes over the outdoor unit coil. Indoorcoil 32 will receive a stream of air blown over it and will heat the airby condensing a refrigerant.

FIG. 3 is a block diagram of an HVAC system 42 that includes the controldevice 22, indoor unit 28 functioning as an air handler, and outdoorunit 30 functioning as a heat pump. Refrigerant flows through system 42within a closed refrigeration loop 44 between outdoor unit 30 and indoorunit 28. The refrigerant may be any fluid that absorbs and extractsheat. For example, the refrigerant may be hydrofluorocarbon (HFC) basedR-410A, R-407C, or R-134a.

The operation of indoor and outdoor units 28 and 30 is controlled bycontrol circuits 48 and 46, respectively. The control circuits 46 and 48may execute hardware or software control algorithms to regulate the HVACsystem. According to exemplary embodiments, the control circuits mayinclude one or more microprocessors, analog to digital converters,non-volatile memories, and interface boards. In certain embodiments, thecontrol circuits may be fitted with or coupled to auxiliary controlboards that allow conventional 24 VAC wiring to be controlled throughserial communications.

The control circuits 46 and 48 may receive control signals from controldevice 22 and transmit the signals to equipment located within indoorunit 28 and outdoor unit 30. For example, outdoor control circuit 46 mayroute control signals to a motor 50 that powers a fan 52 and to a motor54 that powers a compressor 56. Indoor control circuit 48 may routecontrol signals to a motor 58 that powers a fan 60. The control circuitsalso may transmit control signals to other types of equipment such asvalves 62 and 64, sensors, and switches.

According to exemplary embodiments, control device 22 may communicatewith control circuits 46 and 48 by transmitting communication packetsover a serial communication interface. Control device 22 may function asthe master system controller while control circuits 46 and 48 operate asslave devices. In certain embodiments, control device 22 may send a pingmessage to discover connected slave devices and their properties. Forexample, control circuits 46 and 48 may transmit an acknowledgementmessage in response to receiving a ping message from control device 22.Control circuits 46 and 48 also may transmit information, in response torequests from control device 22, identifying the type of unit andspecific properties of the unit. For example, control circuit 46 maytransmit a signal to control device 22 indicating that it controls atwo-stage heat pump with auxiliary heat and a bonnet sensor. Controlcircuits 46 and 48 also may transmit signals identifying terminalconnections and jumper settings of the control circuits.

Control device 22 may operate to control the overall heating and coolingprovided by indoor and outdoor units 28 and 30. Indoor and outdoor units28 and 30 include coils 66 and 32, respectively, that both operate asheat exchangers. The coils may function either as an evaporator or acondenser depending on the heat pump operation mode. For example, whenheat pump system 42 is operating in cooling (or “AC”) mode, outside coil32 functions as a condenser, releasing heat to the outside air, whileinside coil 66 functions as an evaporator, absorbing heat from theinside air. When heat pump system 42 is operating in heating mode,outside coil 32 functions as an evaporator, absorbing heat from theoutside air, while inside coil 66 functions as a condenser, releasingheat to the inside air. A reversing valve may be positioned on closedloop 44 to control the direction of refrigerant flow and thereby toswitch the heat pump between heating mode and cooling mode.

Heat pump system 42 also includes two metering devices 62 and 64 fordecreasing the pressure and temperature of the refrigerant before itenters the evaporator. The metering devices also regulate therefrigerant flow entering the evaporator so that the amount ofrefrigerant entering the evaporator equals, or approximately equals, theamount of refrigerant exiting the evaporator. The metering device useddepends on the heat pump operation mode. For example, when heat pumpsystem 74 is operating in cooling mode, refrigerant bypasses meteringdevice 62 and flows through metering device 64 before entering insidecoil 66, which acts as an evaporator. In another example, when heat pumpsystem 42 is operating in heating mode, refrigerant bypasses meteringdevice 64 and flows through metering device 62 before entering outsidecoil 32, which acts as an evaporator. According to other exemplaryembodiments, a single metering device may be used for both heating modeand cooling mode. The metering devices typically are thermal orelectronic expansion valves, but also may be orifices or capillarytubes.

The refrigerant enters the evaporator, which is outside coil 32 inheating mode and inside coil 66 in cooling mode, as a low temperatureand pressure liquid. Some vapor refrigerant also may be present as aresult of the expansion process that occurs in metering device 62 or 64.The refrigerant flows through tubes in the evaporator and absorbs heatfrom the air changing the refrigerant into a vapor. In cooling mode, theindoor air flowing across the multichannel tubes also may bedehumidified. The moisture from the air may condense on the outersurface of the multichannel tubes and consequently be removed from theair.

After exiting the evaporator, the refrigerant flows into compressor 56.Compressor 56 decreases the volume of the refrigerant vapor, thereby,increasing the temperature and pressure of the vapor. The compressor maybe any suitable compressor such as a screw compressor, reciprocatingcompressor, rotary compressor, swing link compressor, scroll compressor,or turbine compressor.

From compressor 56, the increased temperature and pressure vaporrefrigerant flows into a condenser, the location of which is determinedby the heat pump mode. In cooling mode, the refrigerant flows intooutside coil 32 (acting as a condenser). Fan 52, which is powered bymotor 50, draws air across the tubes containing refrigerant vapor.According to certain exemplary embodiments, the fan may be replaced by apump that draws fluid across the multichannel tubes. The heat from therefrigerant is transferred to the outside air causing the refrigerant tocondense into a liquid. In heating mode, the refrigerant flows intoinside coil 66 (acting as a condenser). Fan 60, which is powered bymotor 58, draws air across the tubes containing refrigerant vapor. Theheat from the refrigerant is transferred to the inside air causing therefrigerant to condense into a liquid.

After exiting the condenser, the refrigerant flows through the meteringdevice (62 in heating mode and 64 in cooling mode) and returns to theevaporator (outside coil 32 in heating mode and inside coil 66 incooling mode) where the process begins again.

In both heating and cooling modes, motor 54 drives compressor 56 andcirculates refrigerant through reversible refrigeration/heating loop 44.The motor may receive power either directly from an AC or DC powersource or from a variable speed drive (VSD). The motor may be a switchedreluctance (SR) motor, an induction motor, an electronically commutatedpermanent magnet motor (ECM), or any other suitable motor type.

The operation of motor 54 is controlled by control circuit 46. Controlcircuit 46 may receive control signals from control device 22. Incertain embodiments, control device may receive information from asensor 68 that measures the ambient indoor air temperature. Controldevice 22 then compares the air temperature to the temperature set point(which may be input by a user) and engages compressor motor 54 and fanmotors 50 and 58 to run the cooling system if the air temperature isabove the temperature set point. In heating mode, control device 22compares the air temperature from sensor 68 to the temperature set pointand engages motors 50, 54, and 58 to run the heating system if the airtemperature is below the temperature set point.

The control circuit 46 and control device 22 also may initiate a defrostcycle when the system is operating in heating mode. When the outdoortemperature approaches freezing, moisture in the outside air that isdirected over outside coil 32 may condense and freeze on the coil.Sensors may be included within outdoor unit 30 to measure the outsideair temperature and the temperature of outside coil 32. These sensorsprovide the temperature information to the control circuit 46 whichdetermines when to initiate a defrost cycle.

Referring now to FIG. 4, a system 400 for monitoring and controlling thetemperature of a building space is shown, according to an exemplaryembodiment. System 400 is shown to include a thermostat 404 installedwithin a building space 402. Typically, thermostat 404 is mounted on awall within building space 402. Thermostat 404 is shown to include userinterface 406 and a temperature sensor 408. User interface 406 includesan electronic display for presenting information to a user 410 and oneor more physical input devices (e.g., a rotary knob, pushbuttons,manually-operable switches, etc.) for receiving input from a user 410.Temperature sensor 408 measures the temperature of building space 402and provides the measured temperature to user interface 406.

Thermostat 404 communicates with a controller 412. In variousembodiments, controller 512 may be integrated with thermostat 404 or mayexist as a separate controller (e.g., a field and equipment controller,a supervisory controller, etc.) that receives input from thermostat 404.Thermostat 404 may send temperature measurements and user-definedtemperature setpoints to controller 412. Controller 412 uses thetemperature measurements and the setpoints to generate a control signalfor HVAC equipment 414. The control signal causes HVAC equipment 414 toprovide heating and/or cooling for building space 402.

Referring now to FIG. 5, a process 500 for monitoring and controllingthe temperature of a building space is shown, according to an exemplaryembodiment. Process 500 may be performed by system 400, as describedwith reference to FIG. 4. In process 500, thermostat 404 measures thetemperature of building space 402 (step 502). User 410 views themeasured temperature and adjusts the temperature setpoint via userinterface 406 of thermostat 404 (step 504). Thermostat 404 sends themeasured temperature and the setpoint to controller 412 (step 506).Controller 412 uses the measured temperature and the setpoint togenerate and provide a control signal to HVAC equipment 414 (step 508).HVAC equipment 414 operates in accordance with the control signal toprovide heating/cooling to building space 402 (step 510).

Occupancy Based Control and Operation

In FIG. 6, a block diagram of thermostat 600 is shown to include sensors602, 604, and 606, processing circuit 608, data communications interface610, and user interface 612. In some embodiments, sensors 602-606 areused to detect occupancy (i.e., occupancy sensors). It is contemplatedthat sensors 602-606 could be, in some embodiments, motion sensors,cameras, microphones, capacitive sensors, or any number of othersensors. Sensors 602-606 could be any number of sensors. Sensors 602-606could be cameras which detect heat signatures in some embodiments.Sensors 602-606 may detect separate objects and distinguish betweenhumans and other objects. Sensors 602-606 could be any transducers whichdetect some characteristic of their respective environment andsurroundings.

Still referring to FIG. 6, thermostat 600 is capable of bi-directionalcommunication with equipment through data communications interface 610.Thermostat 600 may communicate to a network or the Internet through thedata communications interface 610. In some embodiments, datacommunications interface 610 is a network interface for thermostat 600.In some embodiments, the networks include at least one of a wirelessZigbee network, a Bluetooth connection, Ethernet, Wi-Fi, and any othersuch network. In some embodiments, the data communications interface 610includes a near field communication module configured to interact withnear field communication enabled devices. In some embodiments, the nearfield communication module is configured to exchange information in apeer-to-peer connection with a user device. In some embodiments,thermostat 600 may be able to communicate with a variety of devicesthrough a network. For example, thermostat 600 may be able tocommunicate with other network enabled appliances and systems in auser's home such as a security system or a refrigerator or light system.In other embodiments, thermostat 600 may be able to communicate directlywith devices.

Now referring to FIG. 7, processing circuit 608 is shown to include aprocessor 702 and memory 704. Processor 702 may be a general purpose orspecific purpose processor, an application specific integrated circuit(ASIC), one or more field programmable gate arrays (FPGAs), a group ofprocessing components, or other suitable processing components.Processor 702 is configured to execute computer code or instructionsstored in memory 704 or received from other computer readable media(e.g., CDROM, network storage, a remote server, etc.).

Memory 704 may include one or more devices (e.g., memory units, memorydevices, storage devices, etc.) for storing data and/or computer codefor completing and/or facilitating the various processes described inthe present disclosure. Memory 704 may include random access memory(RAM), read-only memory (ROM), hard drive storage, temporary storage,non-volatile memory, flash memory, optical memory, or any other suitablememory for storing software objects and/or computer instructions. Memory704 may include database components, object code components, scriptcomponents, or any other type of information structure for supportingthe various activities and information structures described in thepresent disclosure. Memory 704 may be communicably connected toprocessor 702 via processing circuit 134 and may include computer codefor executing (e.g., by processor 702) one or more processes describedherein. When processor 702 executes instructions stored in memory 704for completing the various activities described herein, processor 702generally configures thermostat 600 (and more particularly processingcircuit 134) to complete such activities.

Memory 704 is shown to include occupancy detector 706, occupancyidentifier 708, occupancy predictor 710, data analyzer 712, systemanalyzer 714, and voice recognition module 716. Occupancy detector 706processes data received from sensors 602-606 to determine whetheroccupancy has been detected. Occupancy identifier 708 processesoccupancy data collected to determine which user or users are home.Occupancy predictor 710 processes calendar and scheduling data todetermine when a user or users will be home, which user or users will behome, and the appropriate course of action when overlap and conflictingpreferences occur.

Processing circuit 608 is shown to include a control circuit 722 whichincludes a controller 724, and a scheduler 726. Controller 724 may be anembodiment of controller 512, and is able to communicate with and sendcommands to connected equipment. Scheduler 726 is a module which isconfigured to receive calendar and schedule data to organize and sendcommands to connected equipment.

Processing circuit 608 is also shown to include a data logger 720.System 700 is shown to include remote data storage 718. In someembodiments, remote data storage 718 is at least one of RAM, ROM, EPROM,EEPROM, CD-ROM or other optical disk storage, hard drive, magnetic diskstorage or other magnetic storage devices, or any other medium which canbe used to store data. Data logger 720 may record data in memory 704 andthe remote data storage 718. In some embodiments, processing circuit 608may store data in remote data storage 718. In some embodiments, remotedata storage 178 is located inside processing circuit 608. In someembodiments, remote data storage 718 is outside processing circuit 608but is located inside thermostat 600. While storing data locally mayreduce access time, the cost of providing suitable storage space maydiscourage user adoption. Remote data storage 718 is remote fromprocessing circuit 608 and may be accessed through any number ofcommunications protocols.

Referring now to FIG. 8, thermostat 600 is shown to have a display 802and a frame 804. In some embodiments, display 802 is touch-sensitive,and may be a capacitive LCD screen. In some embodiments, frame 804 istouch-sensitive. In some embodiments, a capacitive layer may extend fromdisplay 802 out over frame 804. Thermostat may be configured to havebuttons 806-812 on frame 804. Buttons 806-812 on frame 804 are touchsensitive buttons. Buttons 806-812 are not physical buttons, and cannotbe seen. Buttons 806-812 are predefined areas of the capacitive layerwhich extends over frame 804. In some embodiments, buttons 806-812 areassociated with large areas of frame 804 and are not finely sensitive.

Referring now to FIG. 9, exemplary user interfaces 902, 904, and 908 areshown. User interfaces 902-908 are used to interact with and controlthermostat 600. User interface 902 is an exemplary embodiment of amobile application user interface which can be used on personalelectronic devices such as smartphones or tablets. User interface 904 isan exemplary embodiment of user interface 612, and is physicallyintegrated with thermostat 600. User interface 908 is an exemplaryembodiment of a web-based application user interface which can beaccessed through any device connected to the Internet. In someembodiments, a network-based application may be used instead of aweb-based application, and may allow users to control thermostat 600through any device which is connected to a local area network (LAN),regardless of Internet connectivity. It is understood that theembodiments described and shown in FIG. 9 are only a few of manydifferent possibilities. In some embodiments, it is possible for a userto queue commands through user interfaces 902-908 to send to thermostat600. In some embodiments, any combination of the above mentioned methodsmay be available options to control thermostat 600.

Referring now to FIG. 10A, different skins 1002, 1004, 1006, and 1008are shown. Skins may change the look, feel, and functionality ofthermostat 600. Skins may be used to tailor functionality and complexityof operation to a user's preference and comfort level. Skins may besoftware configurations which dictate the appearance of user interface612 of thermostat 600. Skins 1002 and 1006 are exemplary embodiments ofsoftware configuration skins. Skin 1002 is an exemplary embodiment of askin created for a user who wishes to be able to access and use allfeatures of their thermostat 600. Skin 1006 is an exemplary embodimentof a skin created for a user who only wishes to control the temperatureof their home, and does not wish to see any other options or controls.

Skins can be stickers which are applied to the outside of thermostat 600to frame 804. It is understood that physical skins may be in the form ofany physical applique and is not limited to stickers. The buttons shownon skins 1004 and 1008 are visible only on the physical skins, and arenot visible or physical buttons on frame 804. In some embodiments, awirelessly communicating tag, attached to the physical skin, interactswith thermostat 600 to configure the functionality of thermostat 600.For example, an RFID tag is attached to a skin sticker which dictatesportions of frame 804 which correspond to buttons on the sticker.

Referring now to FIG. 10B, a process 1050 through which a skin may becustomized is shown. Users may be able to download an application or usea web-based application, embodied in FIG. 10B as 1052, to customizeskins to their preferred settings. Users may be able to change theplacement and priority of certain features of user interface 612 ofthermostat 600. Users may be able to move icons, screens, or buttons ondisplay 802. It is shown that the movement of button icons 1060, 1062,and 1062 in web-based application 1052 correspond to movement oftouch-sensitive buttons 1054, 1056, and 1058 on thermostat 600. Themovement of screens 1070 and 1072 in web-based application 1052 is shownto correspond to movement of screens 1066 and 1068 on thermostat 600.Changes which could be made to user interface 612 of thermostat 600include backgrounds, icons, macros, scenes, etc. In some embodiments,skins may change the sound settings of thermostat 600. It is conceivablethat any setting on thermostat 600 may be adjusted by a user through theuse of skins. There could be any number of skins, which may be usercustomizable.

In some embodiments, users may be able to design their own physical skinand print it out at a location with a suitable fabrication center. Inanother embodiment, users may need to send their designs to themanufacturer or a dealer to fabricate. In some embodiments, anycombination of the above mentioned methods of customization may beavailable to users.

Determining the occupancy of a home allows thermostat 600 to make energyefficient operating decisions by reducing conditioning and powerconsumption when a home is unoccupied. User comfort may be increasedwhen thermostat 600 is able to anticipate occupancy and condition thehome to user preferences by the time the home is occupied. Occupancybased operation and control of an HVAC system allows users to conserveenergy and arrive home to a comfortable environment without requiring alarge amount of effort on the part of the user.

Referring now to FIG. 11A, an exemplary situation 1100 in whichthermostat 600 detects occupancy of a home is shown. Thermostat 600 maydetect occupancy through sensor 1102, which may be an embodiment ofsensors 602-606. In some embodiments, thermostat 600 may detectoccupancy through communication with external object 1104. Object 1104may be any device. In some embodiments, object 1104 is an electronicdevice capable of communicating with thermostat 600. In variousembodiments, object 1104 may be a user's cellphone, laptop, tablet, orany portable electronic device. In some embodiments, object 1104 is adongle which may be compatible with thermostat 600 or any other objectswhich may communicate with thermostat 600. In some embodiments, object1104 is a wearable object such as a necklace, a watch, or a fitnesstracker. Object 1104 may be a business card or an RFID card. Thermostat600 may detect the time at which occupancy is detected. In someembodiments, thermostat 600 time-stamps logged data to be used in lateranalysis.

FIG. 11B describes an exemplary process 1150 in which thermostat 600 maydetect occupancy and alter operations of a connected system. Thermostat600 waits for an input to be received at sensor 1102 (step 1152). Instep 1154, an input is received. The input may be a noise, a movement, aheat signature, or a communication signal. Once the input is received,it must be processed by occupancy detector 706 of memory 704 in step1156. In step 1157, a determination is made whether occupancy has beendetected. If occupancy has been detected, an operation command is issuedfrom thermostat 600 to the connected system (step 1158). If occupancyhas not been detected, the process repeats, and thermostat 600 waits foran input to be received in step 1152. In some embodiments, thermostat600 may receive a communication signal from object 1104, which may bethrough NFC, WiFi, Bluetooth, or any other communication protocol.

Referring now to FIG. 12A, thermostat 600 may determine occupancy basedon a schedule or calendar. In some embodiments, a user is able to inputa schedule directly to the thermostat. In other embodiments, thermostat600 may support integration with existing calendar applications. In step1202, occupancy predictor 710 of memory 704 receives calendar data or aschedule from a user. Occupancy predictor 710 then determines when theuser does not have any events scheduled in step 1204. In someembodiments, thermostat 600 may allow a user to input a schedule oftimes when she expects to be home. The periods of time identified instep 1204 are then stored as predicted periods of occupancy (step 1206).In some embodiments, thermostat 600 may store the predicted occupancyperiods in remote data storage 718. In other embodiments, thermostat 600may store the predicted occupancy periods locally in memory 704. In step1208, operation commands are issued from thermostat 600 to the connectedsystem based on the occupancy periods stored and the associated user'spreferences.

In FIG. 12B, an exemplary embodiment of methods with which users mayinput calendar data is shown. Existing calendar application 1240accessed on a mobile device with user Jack's schedule is shown. Existingcalendar application 1242 accessed via a browser with user Jill'sschedule is shown. In some embodiments, thermostat 600 may communicatewith Jack or Jill's Google, iOS, or Outlook calendar and determine whenhe or she will be home based upon the appointment and event informationobtained. Thermostat 600 may decide that a user will be home whenever hedoes not have an appointment scheduled. In some embodiments, thermostat600 may be programmed to assume that a user will not be home on weekdaysduring the work day, in addition to appointments and engagements outsideof those hours. Thermostat 600 may be able to determine when a user willbe home based upon location information associated with events in hiscalendar. In some embodiments, thermostat 600 may be able to detect thenetwork connectivity of a user's personal device—whether it isconnected—to determine occupancy. In some embodiments, thermostat 600may be able to detect the network connectivity of a user's personaldevice to determine what area of the home the user is in. Thermostat 600may be able to control conditioning to different areas, or zones, of ahome depending on the duct and flow work. The network 1244, to whichJack is connected, may be identified and used to determine that he is inzone 1 of the home. The network 1246, to which Jill is connected, may beidentified and used to determine that she is in zone 2 of the home.

In a multiple occupancy home, thermostat 600 may be able to makeoperating decisions based on occupancy. Thermostat 600 may be able tooperate on different schedules for different detected users. In oneembodiment, users may each enter their own schedule to thermostat 600directly. In other embodiments, thermostat 600 may be able tocommunicate with external calendars and applications to determine auser's schedule. Thermostat 600 may be able to detect which user is homeand adjust the operating schedule to accommodate that user'spreferences. For example, in a home with multiple occupants anddifferent schedules to keep to, thermostat may detect which user ishome, and make operating decisions based on that user's settings andschedule. It is possible that thermostat 600 may have a differentsetting for guests or periodic visitors such as a housekeeper or ananny. For example, thermostat 600 may operate at lower capacity whenonly the housekeeper is in the home, as opposed to when the entirefamily residing in the home is present.

In a multiple occupancy home, it is common for users to have differentschedules. Referring now to FIG. 12C, thermostat 600 is shown makingoperating decisions based on the intersection of schedules of theoccupants. Thermostat 600 may use calendar information to determine howmany users are home and adjust operation accordingly. Thermostat 600 maymake decisions on operating procedure when more than one user is home.In one embodiment, thermostat 600 may compromise when users withdifferent preferences are home. The process described in FIG. 12A may beadapted for situations in which conflicting preferences exist formultiple occupancy homes. Thermostat 600 may receive the schedule of twooccupants of the home. Thermostat 600 compares the calendars detectoccupancy based on when either occupant does not have an eventscheduled. Thermostat 600 could create a merged calendar of the freetimes of the users. If only one user is home, his settings are applied,as shown in thermostat 600 schedule block 1274. Thermostat 600determines an overlap in occupancy has been detected. For example, ifone user prefers the home to be at 72° F. while another user prefers thehome to be at 68° F., and both users are home, thermostat 600 maycompromise and set the temperature to 70° F. as shown in thermostat 600schedule block 1272. In another embodiment, there may be a master userwhose settings will override other users' settings. For example, oneuser prefers the home to be at 72° F. while another user prefers thehome to be at 68° F.; however, the first user is the master user, so hersettings are conveyed to the equipment as shown in thermostat 600schedule block 1276. In another embodiment, if a user is already at homebut the master user is detected afterward, her settings may be appliedautomatically upon her detection. In yet another embodiment, thermostat600 may keep an existing user's preferences until the master usercommands an update.

Referring now to FIG. 13, thermostat 600 may be able to determine theoperating conditions needed to reach a user's desired settings by thetime they arrive. In one embodiment, thermostat 600 allows a user toprogram directly into thermostat 600 when she expects to be home andwhat settings she would like it to be. In another embodiment, thermostat600 may access a user's external calendar and determine when she will behome as shown in thermostat 600 schedule block 1302. For example, ifJill is scheduled to be home at 1700 and would like her home to be at72° F. when she arrives, thermostat 600 may begin to cool her home froma starting point of 76° F. at 1600, as shown in situational snapshot1304. By 1630, as Jill is travelling, thermostat 600 has already cooledher home to 74° F. as shown in situational snapshot 1306. When Jillarrives home at 1700, her home is already at 72° F., as shown insituational snapshot 1308. In another embodiment, thermostat 600 may beable to receive communication from a user while they are away to settheir home at a certain temperature, which thermostat 600 mayimmediately command.

Thermostat 600 may be able to determine what kind of activities areoccurring in the home and change operation based on occupancy level. Insome embodiments, thermostat 600 is able to detect separate occupants ofthe home. In other embodiments, thermostat 600 determines occupancylevel based on communication with connected equipment. For example,thermostat 600 may be able to estimate occupancy based on assumed loadseen by the AC unit. In another embodiment, thermostat 600 may obtainactivity information from a fitness tracker to determine the amount ofactivity related to a specific user. In yet another embodiment,thermostat 600 may use sensor 1102 to detect the amount of movement oractivity occurring. For example, thermostat 600 may determine that auser is currently occupying a room, but that there is a low level ofactivity. Thermostat 600 may determine that the user is sleeping, andadjust conditioning accordingly. Thermostat 600 may determine that manypeople are in one room, and that there is a high level of activity, andincrease conditioning accordingly.

Referring now to FIG. 14, thermostat 600 may adjust compressor stagingin a connected AC unit based on occupancy. In one embodiment, thermostat600 may detect a change in occupancy and adjust compressor stagingaccordingly. For example, thermostat 600 may detect that more motion isoccurring, and increase staging to maintain temperature. In anotherembodiment, thermostat 600 may analyze the occupancy and activity levelof the home and determine an appropriate staging progression. Forexample, there may currently be one person detected by thermostat 600,as shown in snapshot 1402. The compressor is currently operating instage 1, as there is low occupancy. In snapshot 1404, thermostat 600 maydetect from the home network that there are five people in the home, andcommand the compressor, currently at stage 1, to go through stages 2, 3,and 4 to stage 5. Thermostat 600 may then detect that there are tenpeople in the home, and command the compressor, currently at stage 1, togo directly to stage 5.

Thermostat 600 may be able to determine with some granularity where inthe home a user is. In some embodiments, thermostat 600 communicateswith a user's personal device 1104 and obtains GPS data to determinewhether a user is home, and if so, where he is. In some embodiments,thermostat 600 uses a geofencing to determine what zone or room of thehome a user is in and adjusts operation accordingly. Geofencing allows aboundary to be defined based on locational information. Thermostat 600may adjust operation based on detected occupancy and location. Forexample, if a user is detected on the upper floor of a home, thermostat600 may increase conditioning on the upper floor. Thermostat 600 coulddetect that there are no occupants on the lower floor and decreaseconditioning to the lower floor.

Thermostat 600 may allow users to set their occupancy status through anapplication or as an input to thermostat 600. In some embodiments, auser may input their occupancy status through an object 1104 such as acellphone. For example, Jill may set her status as “away.” In someembodiments, different users may have different settings, and thermostat600 may determine the level of occupancy from the status informationreceived. In some embodiments, thermostat 600 is able to automaticallyupdate a user's status based on the connectivity of an object 1104which, in some embodiments, is a cellphone.

In some embodiments, thermostat 600 may send push notifications to auser's cellphone 1104 depending on their detected location. For example,if Jill is detected to have left her home, thermostat 600 may display aprompt asking if she would like to set her status as “away.” In someembodiments, when a user is away, the system associated with thermostat600 goes into an energy efficient state which may not be comfortable tooccupants remaining in the home. Thermostat 600 may allow a master userto override all commands given to thermostat 600 from other users. Insome embodiments, if a master user is away, the system will go into anenergy efficient state despite the occupancy of the home by other users.Thermostat 600 may display a warning to the master user that anotheruser is still home, and ask whether she would still like to set herstatus as “away.” For example, if Jill is the master user and isdetected leaving her home, thermostat 600 may ask whether she would liketo set her status to “away.” If she chooses “Yes”, thermostat 600 maywarn her that Jack is still home, and that the system will go into anenergy efficient state despite his occupancy. Thermostat 600 may askwhether a user is sure she wishes to change her status. If a userselects “Yes”, the system will execute whatever command is associatedwith no occupancy.

Thermostat 600 may detect a user's location based on a zone sensor whichmay communicate through any communications protocol. For example, thezone sensor may use Bluetooth, NFC, WiFi, or any other communicationsprotocol. In some embodiments, thermostat 600 may indicate the successor failure of detection of a user through the playing of a sound. Insome embodiments, the sound may be unique for success or for failure. Insome embodiments, an accompanying indicator may be displayed. Forexample, a message may be displayed, warning the user that they were notauthenticated. The indicator may be as simple as a flashing LED.

Thermostat 600 may be adjust its communication behavior based ondetected occupancy. In one embodiment, thermostat 600 may determine thata user is in the kitchen while thermostat 600 is in the living room.Thermostat 600 may attempt to communicate any changes in operation tothe user through a speaker in the kitchen, or through the user'sportable electronic device since the user cannot see the screen ofthermostat 600.

Thermostat 600 may be able to learn from user behavior, and store datato adapt operation and better serve users. In one embodiment, thermostat600 may analyze the location data obtained and determine the location inwhich a user spends a majority of his time in. Thermostat 600 may setthat location as a priority to condition over all locations in the home.In another embodiment, thermostat 600 may allow users to set theirpreferred priority space.

Thermostat 600 may be able to learn from outside sources how to adjustoperation. In some embodiments, thermostat 600 stores the date and timeat which occupancy is being detected. Thermostat 600 may determine,based on the season, what an appropriate conditioning command might be.Thermostat 600 may be able to learn what an appropriate adjustment tostandard operating conditions might be based on historical datacollected from the home.

Thermostat 600 may make adjustments to standard operating conditionbased on the frequency at which occupancy is detected. A user isdetected at one time. Some amount of time later, the user is detectedagain. Thermostat 600 will make an operating decision based on the timein between detections. In one embodiment, sensors 602-606 are one motionsensor and thermostat 600 detects occupancy purely on motion. Forexample, a pet cat may walk past the sensor several times a minute,causing thermostat 600 to detect “high occupancy.” However, thermostat600 may have a threshold frequency past which it decides that it shouldnot be considering each detection as a separate event. In anotherembodiment, thermostat 600 may detect a user's device connecting to thehome network at a high frequency, possibly due to faulty components.Thermostat 600 may decide that the high level of activity is notgenuine, and cancel adjustments accordingly.

Thermostat 600 may receive identifying information when detectingoccupancy. In one embodiment, thermostat 600 may use sensors 602-606, inone embodiment, a plurality of cameras, to detect and identify separateusers. In another embodiment, thermostat 600 may receive userinformation from the user's portable electronic device. In yet anotherembodiment, thermostat 600 may communicate with the network to receiveuser information from devices connected to the network. Thermostat 600may store personalized settings and control configurations for eachassociated device. Thermostat 600 may load settings from the network toadjust the user interface in accordance with the user detected. Forexample, a user may prefer to have a user interface with onlytemperature adjustment, whereas another user may prefer to have a userinterface which allows her to access every option available. Thermostat600 may allow users to create a personalized home screen which displaysinformation the user is most interested in.

Thermostat 600 may display different information based on the userdetected. In some embodiments, thermostat 600 is able to distinguishbetween occupants based on information received from sensors 602-606.One of sensors 602-606 may be a camera, an IR sensor, a microphone, orany other conceivable sensor which could be used to detect occupancy.Thermostat 600 may only display the current temperature if a child or apet is detected. In some embodiments, thermostat 600 may detect the userbased on their identifiable personal device, and display a screen of herchoice. For example, if a user prefers to see how long it will take toreach her settings, she can select that screen as the default screenwhen she is detected in the home. In another embodiment, thermostat 600may display the most used screen. For example, if the temperature screenis used the most out of all screens available, thermostat 600 maydisplay the temperature screen whenever occupancy is detected.

Near Field Communication Based Control and Operation

Thermostat 600 may be able to base control and operation decisions ondata obtained through near field communication (NFC). In one embodiment,a user brings personal electronic device 1502 within range of an NFCtransmitter integrated with thermostat 600, as shown in FIG. 15A. Thismay be referred to as “checking in.” FIG. 15B describes process 1550, anexemplary embodiment of the method. In step 1552, thermostat 600 mayreceive identifying information through NFC. This information mayinclude preferred settings for thermostat 600. Upon authentication andidentification of the user through electronic device 1502, thermostat600 is receptive to commands (step 1554). In some embodiments,thermostat 600 may provide an audible indication that the scan hasoccurred. For example, thermostat 600 may beep to let users know thatscanning has been completed. In other embodiments, thermostat 600 mayprovide visual feedback that scanning has occurred. For example,thermostat 600 may flash display 802. In another embodiment thermostat600 may communicate to device 1502 to provide an indication, such asbeeping, flashing, or vibrating, that scanning has occurred. Thermostat600 may alert the user that scanning has occurred in any number of waysnot limited to those enumerated. Upon receiving a command in step 1556,thermostat 600 then transmits the command to connected equipment (step1558).

In some embodiments, thermostat 600 may detect that no users have beenassociated, and may display a prompt on display 802 or on device 1502with a tutorial on how to set up thermostat 600. For example, ifthermostat 600 has just been installed and has no associated users anddetects Jill's phone, thermostat 600 may display a message on Jill'sphone asking whether she would like a tutorial of how to set upthermostat 600, or if she would like a walkthrough of any of thefeatures of thermostat 600.

In multiple occupancy homes, thermostat 600 may allow multiple users. Insome embodiments, a user may designate themselves as the master user,and may be able to override all commands to thermostat 600 from otherusers. In some embodiments, a new master user may be designated throughan NFC check in based on the identifying information received bythermostat 600. For example, master user Jill may leave for work earlyin the morning while Jack remains at home until the afternoon. Jack maybe able to check in and become the new master.

In some embodiments, thermostat 600 may automatically execute commandscommunicated through NFC. Users may be able to queue commands tothermostat 600 on their electronic device and transmit them through theuse of NFC. In some embodiments, a user may send commands directlythrough user interface 612. In other embodiments, a user may sendcommands through electronic device 1502. For example, an applicationmade by Johnson Controls Inc. for interacting with thermostat 600 may beavailable for download to a user's device. In some embodiments, if auser has not downloaded the application, thermostat 600 may be able todetect this and activate a prompt which asks the user if they would liketo install the application. Thermostat 600 may be able to communicatewith the network and initiate the installation process for theapplication. In other embodiments, a web-based application may beavailable for use with thermostat 600. For example, Johnson ControlsInc. may create an application which users can access from any devicewith network connectivity.

In FIG. 16A, thermostat 600 is communicating with network 1602 toreceive information which thermostat 600 then transmits to device 1502.In some embodiments, network 1602 is a cloud storage service. In otherembodiments, network 1602 may be a LAN or any other type of network, andmay allow access to the Internet.

Referring now to FIG. 16B, thermostat 600 communicates over NFC withdevice 1502 which communicates with the network. Thermostat 600 maycommand device 1502 to retrieve information from network 1602 instead oftransmitting the data over NFC. This embodiment and the previousembodiment are critically different in the flow of information.

Thermostat 600 may be able to receive billing information from device1502. A user may wish to analyze their usage and their bill to makedecisions regarding their behavior moving forward. In some embodiments,a user may be able to bring device 1502 within range of thermostat 600and transmit bill information to thermostat 600. In some embodiments,the information is transferred over NFC after authentication of the userand device 1502. In other embodiments, the user and device 1502 areauthenticated over NFC, and a command is sent to thermostat 600 toretrieve bill information from the network. The information retrievedmay be in the form of Excel data, an XML file, a .txt file, any filetype with tags, or any number of data formats. A user may be able to paytheir bill over NFC through protocols such as Android Pay or SamsungPay.

In FIG. 17, process 1700 is an exemplary method through which thermostat600 may preprocess stored data in order to send performance reports todevice 1502 almost instantaneously. In some embodiments, device 1502 isable to quickly pull raw data via NFC from thermostat 600 to generateperformance reports on topics such as energy management. Thermostat 600may store data within a memory integrated with the device itself. Insome embodiments, thermostat 600 may store data in the network. In step1702, thermostat 600 prepares reports for download by device 1502 inadvance of a request for a report. Device 1502 checks in over NFC withthermostat 600 and is authenticated (step 1704). Once device 1502 isauthorized to download reports from thermostat 600, the analytics aredownloaded for immediate display in step 1706. The entire process isstreamlined to provide users with quick updates of their systemperformance. In some embodiments, generated reports pertain to energymanagement. In other embodiments, reports pertain to system operatingparameters and performance metrics such as time-to-setpoint. In someembodiments, reports may be sent to a different authorized device aftercheck in and specification by the user. The state and operationparameters of an HVAC system are constantly changing. In someembodiments, placing device 1502 on thermostat 600 provides a user witha snapshot of the system which includes information such as the systemstate, setpoint, current temperature.

Referring now to FIG. 18, the process of locking thermostat 600 over NFCis shown. A user (in this exemplary process, Jill) may check in withthermostat 600 with device 1802 and send the command to lock operation.Thermostat 600 receives the command and locks operation until anothercommand is received. All attempts to input commands from other users(device 1806), pets, or small children (baby 1804) will be denied. Uponcheck in from the same user's device, cellphone 1802, which lockedthermostat 600 and receiving the unlock command, thermostat 600 mayresume operation and become receptive to commands from other users. Insome embodiments, thermostat 600 may be commanded to allow otherauthorized users who check in to unlock operation. For example, Jillcould send a command authorizing Jack to unlock operation—no one butJack and Jill can unlock thermostat 600. In other embodiments, a usermay be able to lock thermostat 600, but a master user may be able tounlock thermostat 600 without specifically being authorized to do so.For example, Jack may lock thermostat 600 without designating anyoneelse as an authorized user; because Jill is a master user, Jill canunlock thermostat 600. In some embodiments, a user may have more thanone device associated with him and thermostat 600 may recognize alldevices and allow him to lock and unlock devices with different devicesassociated with him.

Referring now to FIG. 19, an exemplary process 1900 for changing zonesbased on the user is shown. It is contemplated that there are multipleconditioning zones in a home, and that an NFC tag or sensor may beinstalled in each. Depending on the zone in which a user checks in,thermostat 600 may automatically receive commands to adjust settings forthat zone. Jack, a user is shown checking in with an NFC tag on thefirst floor, or zone 1, of his home in step 1092. Once Jack's device1502 is authenticated, thermostat 600 receives an automatic command toadjust settings of zone 1 to Jack's preferences in step 1904. Jack isthen shown to check in on the second floor of his home in step 1906.Once Jack's device 1502 is authenticated, thermostat 600 receives anautomatic command to adjust settings of zone 2 to Jack's preferences instep 1908. In a multiple occupancy home, thermostat 600 may supportmultiple settings for each zone. In some embodiments, thermostat 600 mayadjust each zone to a different user's preferences. In otherembodiments, thermostat 600 may decide that zones in which a user hasnot checked in are not occupied, and therefore adjust or reduceconditioning in those zones. A user may be able to save preferred zonesas part of their settings. For example, if a home is divided into zonessuch that there is one zone for each room, a user may save their bedroomas their preferred zone. Upon check in at any of the NFC sensors in thehome, settings for their preferred zone will be communicated tothermostat 600, which will control the appropriate connected equipment.

Referring now to FIG. 20, an exemplary process 2000 for adjustingconditioning when a user is between zones is shown. In many homes, theonly thermocouples or other temperature sensors are the ones integratedwith the thermostats. In step 2002, thermostat 600 may detect that auser is not in just one zone. Thermostat 600 sends a prompt to bedisplayed on user's device 1502 which asks whether it is cool enough. Ifthe user feels that it is not cool enough, despite the thermostat'ssensor reporting that the desired temperature has been reached, he maychoose to say “No.” Thermostat 600 then adjusts the operating conditionsof one of the zones the user is between. Once the conditions havestabilized, thermostat 600 sends another prompt to be displayed onuser's device 1502 which asks whether it is cool enough (step 2004). Ifthe user still feels that it is not cool enough, in step 2006,thermostat 600 adjusts the operating conditions of another zone the useris between. Thermostat 600 repeats this process until the user respondsin the affirmative. This process could be used for heating, foradjusting humidity, etc. and is not limited to cooling.

Referring now to FIG. 21, thermostat 600 may be able to detect faults inor receive messages reporting faults from connected equipment. When afault is detected, thermostat 600 may alert users by sending a prompt tothe users' devices. For example, if a compressor is not functioningcorrectly and this malfunction is detected, thermostat 600 may send aprompt to device 1502 notifying the user that the compressor is notperforming as expected. In some embodiments, thermostat 600 may containcontact information for the dealer or an authorized repair company.Thermostat 600 may include the contact information in the prompt, orprovide it when a user indicates that they would like to call for help.For example, thermostat 600 may ask a user if they would like to contactthe dealer, and offer to dial the dealer's number if a user chooses toaccept. In some embodiments, thermostat 600 uses NFC to send thedealer's number to the user's phone when the user places his phone onthermostat 600. In some embodiments, thermostat 600 may generate anestimate for repair costs based on historic data. In other embodiments,thermostat 600 may receive communication from the dealer with anestimate of the repair based on the information transmitted.

Thermostat 600 may be able to provide different user interfaces and makedifferent options available depending on the user. As shown in FIG. 22A,thermostat 600 may have an operating mode targeted to dealers whichallows for configuration of thermostat 600 before purchase by the enduser. A technician is shown to use dealer authorized device 2202. Insome embodiments, thermostat 600 in dealer mode will allow a dealer toapply a custom configuration specific to their dealership. The dealermay program in their contact information to be displayed when a fault isdetected. The dealer may choose to include their logo, custom messages,and specific settings for system parameters. The dealer may configureany aspect of the thermostat. In some embodiments, the dealer maycontact the customer before purchase and configure the settings to thecustomer's specifications. The dealer may be able to include faultsuppression rules, such that minor faults are not displayed to the userto prevent undue concern. For example, faults related to energyefficiency may not be displayed to the user. In some embodiments, thedealer may be able to demote faults to prompts such that a user remainsinformed, but does not become distressed. For example, if a user's ACunit is not functioning as efficiently as it could, the dealer maydemote the fault to a prompt which notifies the user that currentoutside conditions make it difficult to operate at maximum efficiency.In some embodiments, dealers may edit the language of the faults. Forexample, if a catastrophic failure of the system occurs, a dealer maychange the language of the fault notification to a less panic inducingmessage.

Referring now to FIG. 22B, thermostat 600 may follow differentprocedures for reporting faults when a dealer is the user checked in.Information may be transmitted to the dealer or repairman over NFC. Insome embodiments, the information itself is not sent—instead, a key orcommand is sent to the device to retrieve the information from thenetwork. In some embodiments, thermostat 600 is able to send the dealeror repairman to the appropriate troubleshooting page for the specificmodel of equipment being worked on. Troubleshooting techniques andcommon problems and their solutions may be displayed. In someembodiments, thermostat 600 may communicate where variations in thesystem and most commonly identified trouble junctions are duringinstallation. Thermostat 600 may store performance data and fault data.In some embodiments, this data is stored in memory integrated withthermostat 600. In other embodiments, this data is stored in the networkand accessed by thermostat 600 when needed. Thermostat 600 may be ableto produce a system performance history report. In some embodiments,thermostat 600 may produce a fault history report or any number ofanalytic reports on the operation of the system.

Referring now to FIG. 23, equipment connected to thermostat 600 mayinclude RFID tags which can be scanned by thermostat 600 or the deviceof an installer. AC unit 2302 and furnace 2304 are shown to include RFIDtags. The RFID tags may contain identifying information such as theserial number, model, and install date. For ease of installation, theRFID tags may link to installation instructions unique to the model ofequipment being installed. In some embodiments, other information suchas wiring diagrams and set-up guides may be available upon scanning theRFID tag of the respective piece of equipment. Thermostat 600 may send akey to access the information over NFC along with a command to retrievethe information from the network. The information may be displayed ondealer authorized device 2202 or another authorized device. In someembodiments, the information may be displayed on display 802 ofthermostat 600. In some embodiments, dealers may be able to input thewarranty information for the system to be made available to the user ifrequested from thermostat 600. In some embodiments, the warrantyinformation and period may be automatically applied during installationvia NFC. In some embodiments, a user is able to retrieve warrantyinformation from thermostat 600 via NFC by placing device 1502 onthermostat 600.

It should be noted that some or all of the features disclosed abovedescribed with respect to advanced functions and modes available todealers and installers may also be available to end users, if desired.

Smart Thermostat and Equipment Communications

Most commercial thermostats available to consumers are only capable ofuni-directional communication: switching on or off connected equipment.Thermostat 600 is capable of bi-directional communication with connectedequipment in the system. Referring to FIG. 24, it is shown thatthermostat 600 is capable of communicating with a variety of devices,such as light system 2404, refrigerator 2406, security system 2408,blinds or windows 2410, door 2412, or fitness tracker or other wearable2414, either directly or through an intermediary. Thermostat 600 maycommunicate directly with connected HVAC equipment 2420. Thermostat 600may communicate with services such as weather service 2416, utilityprovider 2418, network 2422, or server 2424. In some embodiments,thermostat 600 communicates with devices through router 2402 to whichthe devices are connected. In other embodiments, thermostat 600communicates with devices through network 2422 with which the devicesare connected. User owned portable electronic devices with whichthermostat 600 may communicate include device 1502, laptop 2426, ortablet 2428. It is understood that the resources with which thermostat600 is shown to be connected are not meant to be limiting, and thatthermostat 600 may be connected with any number of devices, services,and systems. Communication may occur over any of a number of protocols:communication may occur over wired or wireless venues. Communication mayoccur over WiFi, Bluetooth, LAN, TCP/IP, etc.

Referring now to FIG. 25, thermostat 600 is able to receive informationused to calculate metrics such as assumed load and current energyconsumption due to its bi-directional communication abilities.Thermostat 600 is shown to be connected with network 2422, through whichthermostat 600 may communicate with dealer 2502, weather service 2416,analytics service 2504, or utility provider 2418. Thermostat 600 isshown to be communicating directly with HVAC equipment 2420. It isunderstood that the resources with which thermostat 600 is shown to beconnected are not meant to be limiting, and that thermostat 600 may beconnected with any number of devices, services, and systems. The historyof the system, including equipment operating performance, can be storedeither in memory integrated with thermostat 600 or in network 2422 forlater access.

Thermostat 600 may analyze the data through analytics service 2504.Analytics service 2504 may be an embodiment of analyzer 712 of memory704, which is integrated with thermostat 600, or may be a remote moduleable to communicate with thermostat 600 in any of the ways in whichthermostat 600 is able to communicate: through wired or wirelessprotocols. Thermostat 600 and analytics service 2504 may be able to usehistorical data from the system with which it is associated as well asother systems connected to the network which are similar in size andequipment configuration. Thermostat 600 may be able to use localequipment history or history stored in network 2422 of similar equipmentto educate a user on the capabilities of his system. Analytics service2504 may have algorithms available to it, as well as a store ofhistorical calculations and analysis from which it may provide informedestimates. Thermostat 600 may receive basic operational data fromconnected equipment which it then transmits to analytics service 2504.Analytics service 2504 may use feedback from connected equipment to makeaccurate estimates and to detect faults. For example, analytics service2504 may determine that despite the AC unit operating at maximumsettings for the past 20 minutes, no change in temperature has beendetected. Analytics service 2504 may then generate an error message forthermostat 600 to communicate to a user. Analytics service 2504 may alsobe able to detect problems such as capacity incongruences and stagingmalfunctions. It is understood that analytics service 2504 is notlimited to detecting problems explicitly enumerated.

Thermostat 600 may connect with a commercial energy management softwarewhich provides tools to users. These tools may allow users to createreports using variables in which they are interested. In someembodiments, thermostat 600 may transmit all data received to thecommercial energy management software for processing and presentation toa user. Thermostat 600 may receive results and reports from the energymanagement software for display to a user on a portable device or ondisplay 802. In some embodiments, thermostat 600 may generate theresults and reports and display the results and reports to the user onportable device 1502 or on display 802. Advantages of not processingdata locally include reduced cost of units for consumers and simplicityof updating or patching functionality. Thermostat 600 may be compatiblewith a plug in which communicates with thermostat 600 and a standaloneprogram. The plug in may detect parameters such as current draw, and maybe able to detect actions of the system early through monitoring currentdraw or other such parameters.

Analytics service 2504 may combine a user's energy usage data with theirenergy bill to report on the fiscal effects of a user's behavior.Thermostat 600 is able to communicate with a user's device which mayauthorize thermostat 600 to receive billing information. In someembodiments, thermostat 600 may help a user reduce their energy bill byintegrating demand-response information into the report. In someembodiments, thermostat 600 is able to develop a cost analysis of auser's energy behavior. For example, thermostat 600 may be able toreceive demand-response feedback from a utility provider or smart meterwhich can be analyzed along with a user's energy usage to inform theuser of the effects of their usage behavior.

Referring now to FIG. 26B, several processes through which a user cancontrol her energy usage and resulting energy bill are shown. In process2602, display 802 of thermostat 600 is shown. Thermostat 600 may suggestsetpoints to help a user reach her target bill amount. In step 2604, auser is asked to input her current monthly energy bill and their currentsetpoints. For example, Jill may currently be paying $350 a month inenergy bills by keeping her setpoints at 68° F. in the summer and 76° F.in the winter. In step 2606, the user is asked to input her target billamount. Jill may wish to reduce her bill to $250 a month. In somesituations, the target bill amount is not possible. Thermostat 600 maydisplay a warning to the user that her target is unachievable under thecurrent operating conditions. For example, it is the coldest winter inJill's area in 100 years. In order to keep temperatures at a livablelevel and prevent damage to the plumbing, the temperature needs to bekept at or above 65° F. In another situation, it is the hottest summerin Jill's area in 100 years. The units in Jill's home are not equippedto efficiently cool a house of that size to a livable temperature.Thermostat 600 is unable to save enough energy to reduce Jill's monthlybill to $250 and when she inputs her target payment as $250, thermostat600 may flash a message which reads “Current operating temperaturesprevent me from reaching your target bill amount. We are on track tohaving a bill of $300 this month.” When the target bill amount ispossible, thermostat 600 may change the setpoints to the setpointssuggested to the user. In one embodiment, a user may input her ownpreferred setpoints to see what her monthly bill may be if she does notmake changes to her energy usage. In step 2608, for example, Jill mayinput her preference for 70° F. and 74° F. Thermostat 600 may determinethat based on local historical equipment data, Jill's monthly bill withher current settings will be $230. In some embodiments, thermostat 600may use data from the history stored in network 2422. Thermostat 600 maycommunicate the need to have the data analyzed by data analytics service2504. Thermostat 600 may communicate with other devices connected tonetwork 2422 and display information on connected devices. In someembodiments, thermostat 600 may display all data and communications on auser device 1502.

Still referring to FIG. 26B, in process 2624, thermostat 600 may allow auser to track their usage relative to their target. In step 2626,thermostat 600 shows on display 802 a user's energy usage relative totheir goal payment for the month. For example, Jill would like to pay$100 for the month of July. It is the 13th, and she is already halfwaythrough her target payment. This allows Jill to make an informeddecision on whether she would like to adjust her usage habits or receivea larger bill. In some embodiments, thermostat 600 may provide a reportof different operating parameters and their respective energy usage. Instep 2628, the runtime of each stage of the compressor is shown. In step2630, the calculated cost associated with the runtimes of each stage isshown. This comparison informs users of their usage habits and allowsusers to decide whether and how to make adjustments to affect theirmonthly bill. In some embodiments, thermostat 600 may use data from thehistory stored in network 2422. Thermostat 600 may communicate the needto have the data analyzed by data analytics service 2504. Thermostat 600may communicate with other devices connected to network 2422 and displayinformation on connected devices. In some embodiments, thermostat 600may display all data and communications on a user device 1502.

Still referring to FIG. 26B, thermostat 600 may make changes tosetpoints automatically (process 2650). In step 2652, display 802 ofthermostat 600 is shown to inform a user that his setpoint has beenraised by 2° F. For example, Jack may have had his setting at 72° F. andover the course of a few hours, thermostat 600 may have raised thetemperature to 74° F. Thermostat 600 may inform Jack that his setpointwas increased, and ask whether he had noticed a difference in comfort orwhether he would like to keep the change made. If a user chooses toaccept the change, thermostat 600 may display the projected savingsresulting from the change (step 2654). In some embodiments, this is amonthly savings. Thermostat 600 may be able to estimate the savings forjust one day, or for a year. This feature may help users save energy bymaking adjustments and showing them how even a small change can resultin savings. In some embodiments, thermostat 600 may use data from thehistory stored in network 2422. Thermostat 600 may communicate the needto have the data analyzed by data analytics service 2504. Thermostat 600may communicate with other devices connected to network 2422 and displayinformation on connected devices. In some embodiments, thermostat 600may display all data and communications on a user device 1502.

Still referring to FIG. 26B, thermostat 600 may compare a home's systemwith systems in the surrounding area or neighborhood (process 2674). Insome embodiments, thermostat 600 receives information regarding thesystems in the surrounding area from data analytics service 2504. Insome embodiments, only homes with similar settings and equipment will beshown. In other embodiments, all homes will be shown regardless. In step2676, thermostat 600 may show on display 802 statistics on setpointsbeing used by neighbors. This allows users to compare their usage habitswith users in similar environmental conditions. For example, Jack andJill live in Mr. Roger's Neighborhood. Thermostat 600 shows that 40% ofhomes have setpoints at 72° F. and 72° F. (meaning that they keep 72° F.as the setpoint year round). In step 2678, thermostat 600 may show theaverage monthly bill for the set of homes included in the report.Thermostat 600 may ask users if they would like to try the settings,allowing users to make budget and energy conscious decisions withoutundue effort. In some embodiments, thermostat 600 may use data from thehistory stored in network 2422. Thermostat 600 may communicate the needto have the data analyzed by data analytics service 2504. Thermostat 600may communicate with other devices connected to network 2422 and displayinformation on connected devices. In some embodiments, thermostat 600may display all data and communications on a user device 1502.

Thermostat 600 may make comparisons of the connected system to similarsystems connected to the network. System analyzer 714 may find a subsetof systems connected to the network which are similar to the systemconnected to thermostat 600. Similar systems may be determined based onequipment configurations, size of home, location, climate, and variousother factors or any combination of the previously mentioned factors.Thermostat 600 may send a request for a report to be generated byanalytics service 2504, which may retrieve data, from the subset ofsimilar systems determined by system analyzer 714, from the network.Reports may be generated which analyze energy usage of the occupants ofa home. As shown in FIG. 26A, thermostat 600 may display reports on auser's device 1502 to compare and contrast a user's energy consumptionand behavior with other similar systems. Thermostat 600 may also showcomparison reports on display 802. For example, thermostat 600 maydisplay reports comparing John's usage with his neighbors—Jack andJill's—usage.

In other embodiments, thermostat 600 may find systems which are similarwith respect to many parameters, although not necessarily geographicallyclose. Thermostat 600 may be able to notify a user of their ranking interms of energy usage. For example, thermostat 600 may inform a userthat their energy usage is above average among similar systems. Thisallows users to evaluate their energy usage behavior and decide whetherthey value efficiency, comfort, or a compromise. In some embodiments,number ranks could be given, encouraging users to experiment withthermostat 600 and its settings in order to be more efficient. It iscontemplated that users can post their rank and their settings on socialmedia to share with others and to create a sense of competition. Forexample, a user may post their settings on a social media web site withthe message “My conditioning system is running 10% more efficiently thismonth and saved $15 on my electricity bill! Thanks Johnson ControlsInc.!”

Referring now to FIG. 26C, users may be able to indicate theirpreference to thermostat 600, which may use the preference to makeoperation decisions. When comparing systems according to process 2680,thermostat 600 may determine whether settings of other systems canimpact a user's energy usage. In step 2681, system analyzer 714 may finda subset of systems connected to the network which are similar to thesystem connected to thermostat 600. Similar systems may be determinedbased on equipment configurations, size of home, location, climate, andvarious other factors or any combination of the previously mentionedfactors. Thermostat 600 may find that a neighboring home of a similarsize with a similar system is using much less energy (step 2682). If theuser has indicated that they value energy efficiency, thermostat 600 maynotify the user that potentially more efficient settings have been found(step 2683). In some embodiments, thermostat 600 may automaticallytest-run settings which have been identified as potentially impacting auser's energy usage. For example, thermostat 600 may run settings of apotentially more efficient system while a user is not home and reportthe results of the test when the user returns (step 2684).

In some embodiments, thermostat 600 may display a prompt with theidentified potentially impactful settings and allow a user to decidewhich settings to test. For example: a system identical in equipment andarea serviced is identified as operating 10% more efficiently thanJill's system. Thermostat 600 may display “According to informationstored in the cloud, you may be able to increase efficiency byincreasing your fan speed to HIGH. Would you like to increase your fanspeed from MEDIUM to HIGH? To accept this change, please select Yes. Toreject this change, please select No.” Depending on Jill's selection,thermostat 600 would either adjust fan speed or dismiss the prompt. Insome embodiments, an issue may occur when a setting does not produceexpected results. For example, the blower of a system is too small tooperate any more efficiently at higher speeds. A compressor may bebroken and consequently produces no better results when staging isaltered. Thermostat 600 may identify the source of these issues andevaluate what the problem is (step 2685). Thermostat 600 may thendisplay a prompt to the user asking whether she would like to call herdealer or a technician to repair the identified source of the problem(step 2686). For example, if a furnace is connected to thermostat 600,thermostat 600 can communicate with the furnace and determine that thereis a problem with the airflow of the furnace. Thermostat 600 can useinformation gathered from the furnace to identify that an air filter ofthe furnace needs to be changed. Thermostat 600 can then display aprompt to the user identifying the issue as a bad air filter. In someembodiments, the information regarding identified problems are sentdirectly to the user and the technician via an email or text message.

Thermostat 600 is able to provide a clear and up-to-date report of ahome's energy usage. Thermostat 600 is able to communicate with a widevariety of devices, and the communication allows greater detail whencreating a usage report. Whereas a monthly bill from a utility providermerely shows the total usage, analytics service 2504 offers keyinformation such as the time of use and the piece of equipmentassociated with the usage. For example, thermostat 600 may display anenergy usage report which shows that for the past two days, thedishwasher has been using more than twice the amount of energy is hasbeen using for the three years it has been in the home. Thermostat 600may detect the discrepancy and notify a user that the dishwasher may bemalfunctioning. Thermostat 600 may display an energy report which showsthat the AC system is using less energy than a user had previouslythought. Thermostat 600 may display an energy report that shows that thewashing machine is using energy even when it is not being used. Thisinformation may help a user decide that it is time to replace old,inefficient appliances. Thermostat 600 may connect to older, existingequipment in a home to improve efficiency over previous performanceusing a conventional thermostat. In some embodiments, thermostat 600applies changes to the equipment operating parameters using meteringover time.

Thermostat 600 may be able to use analytics service 2504 to calculatethe time needed to reach the setpoint commanded by the user. In someembodiments, this calculation is done locally. In other embodiments,thermostat 600 may transmit the data to analytics service 2504 which maytransmit the results back to thermostat 600 or a user device 1502 fordisplay. For example, thermostat 600 may receive a command to conditiona home to 72° F. when the outside temperature is 80° F. and there is lowhumidity. Thermostat 600 transmits the current operating conditions andthe command to analytics service 2504. Analytics service 2504determines, from current operation conditions, feedback from theequipment, and historical data, that the system will be able to reachthe setpoint specified in half an hour. Analytics service 2504 transmitsthis information to thermostat 600, which then displays a message to theuser notifying her that the system will reach the setpoint in half anhour. In some embodiments, based on certain outside conditions, thesystem may be under an unusual amount of load. Analytics service 2504may recognize this when comparing system performance with similarsystems and adjust the time estimate. In some embodiments, analyticsservice 2504 may add an offset to the standard time estimate. It iscontemplated that analytics service 2504 is able to perform thisfunction for more optimal conditions as well, and subtract an offsetfrom the standard time estimate.

Referring now to FIG. 26D, thermostat 600 may be able to notify a userof the ability of the system to reach the setpoint specified by theuser. For example, thermostat 600 may receive a command to condition alarge home to 77° F. when the outside temperature is 105° F. Thermostat600 sends the current operating conditions and the command to analyticsservice 2504. Analytics service 2504 may determine, from currentoperation conditions, feedback from the equipment, and historical data,that due to the high humidity and the size of the AC unit installedrelative to the size of the home, the system is unable to reach thesetpoint. Analytics service 2504 may determine this by using data pointsfrom current operation to extrapolate future temperatures. Analyticsservice 2504 may use historical data points to determine setpoint limitsunder the current operating conditions. Analytics service 2504 transmitsthis information to thermostat 600, which then displays a message to theuser notifying her that the system is unable to reach a setpoint.

When this situation arises, thermostat 600 may be able to notify theuser in any number of different ways. Thermostat 600 may display anindicator such as a flashing message on display 802, transmit a messageto user device 1502 to vibrate and alert the user that the setpoint isunattainable, play a sound, or any number of other methods of notifyingthe user. Thermostat 600 may display a message with more informationabout the situation, such as the factors contributing to the inabilityof the system to reach the setpoint. It is contemplated that thermostat600 may notify users of any condition and provide additionalinformation, and that this feature is not limited to when the systemcannot reach the specified setpoint. In some embodiments, thermostat 600may be able to calculate the maximum or minimum setpoint which can beachieved based on the current operating conditions, feedback fromequipment, and historical performance data. In some embodiments,thermostat 600 uses historical data to determine that a system waspreviously able to reach a setpoint, but is now unable to do so. In someembodiments, thermostat 600 monitors the time it takes the system toreach a setpoint and compares it to a threshold time. For example, if asystem that historically takes 15 minutes to reach 65 degrees Fahrenheitwhen the temperature is 70 degrees Fahrenheit takes 30 minutes to reach65 degrees Fahrenheit, the thermostat 600 can identify a decrease inperformance. In some embodiments, thermostat 600 determines a newsetpoint such that the time required to reach the setpoint is equal orless than the threshold time. In some embodiments, thermostat 600 mayadvance a time of a setpoint change to allow for the increased timerequired to reach the setpoint and enable the setpoint to be reached atthe desired time. This decrease in performance may be due to degradationof components in the system, and thermostat 600 may display a prompttelling the user that a piece of equipment may be broken or damaged.Thermostat 600 may ask a user if they would like to call their dealer ora technician to have the system repaired. In some embodiments,thermostat 600 does not reach the setpoint due to weather conditions andoperating limitations of the equipment. In some embodiments, thermostat600 serves a notification to the user that the setpoint is unattainable.

Thermostat 600 may be able to offer an alternative when the setpointcannot be reached. In some embodiments, analytics service 2504 may beable to find a solution in which the system can sacrifice certainparameters in order to achieve the user's desired setting. For example,thermostat 600 may be able to achieve the specified setting, if the useris willing to pay more in electricity, decrease the lifespan ofcomponents, wait for a longer period of time, or turn off anotherappliance. It is understood that there are other tradeoffs which couldbe made to achieve a desired thermostat setting. The choice is offeredto the user, who will then be able to decide between energy saved andtime lost.

Thermostat 600 may display the appropriate setpoint limit depending onwhether a user is decreasing the setpoint (the minimum) or increasingthe setpoint (the maximum). In some embodiments, thermostat 600 is ableto detect when to show the setpoint limit, depending the user'scommands. For example, if a user is repeatedly inputting commands atuser interface 612 of thermostat 600, thermostat 600 may display thesetpoint limit. In other embodiments, thermostat 600 may go directly tothe limit after predetermined conditions have been met. For example, ifa user is inputting commands at user interface 612 of thermostat 600 andholds down a button for a certain amount of time, thermostat 600 mayinterpret the input as a command to set the system to the respectivelimit. In some embodiments, if a system is already at its limit when auser tries to command the system to move farther in the direction of theextreme, thermostat 600 may display a notification on display 802 toinform the user that the system is already at its limit, and that theirrequest cannot be fulfilled under the current conditions.

Thermostat 600 may be able to show a user the efficiency or comfortconsequences of their commands. Thermostat 600 may receive a command ona hot day to condition a home to 2° F. lower than it currently is.Thermostat 600 may transmit the current operating conditions and thecommand to analytics service 2504. Analytics service 2504 may determine,from current operation conditions, feedback from the equipment, andhistorical data, the additional costs associated with the 2° F. decreaseas well as the additional energy used based on billing historyassociated with the home, billing data of similar systems connected tothe network, and algorithms for determining energy consumption.Thermostat 600 may be able to perform these calculations for anyincrease, decrease, or lack of change in the setpoint. The calculatedenergy consumption and additional costs may be used by analytics service2504 to provide suggestions to users about their usage behavior. Forexample, thermostat 600 may display a message explaining that turning upthe setpoint on a hot day by 2° F. may save a user as much as $3.00 thatday. Thermostat 600 may provide tips for conserving energy such asreducing load by turning off high-energy devices such as dryers, or bybetter insulating the home by closing windows. Thermostat 600 mayprovide suggestions of energy or money saving features not recentlyused.

Analytics service 2504 may be able to determine from comparing currentperformance with historical performance whether a piece of equipment isfunctioning correctly. For example, analytics service 2504 may determinethat if a connected unit is malfunctioning, analytics service 2504 maytransmit an error code to thermostat 600, which then displays an errorcode to the user. In some embodiments, thermostat 600 may display theerror code on display 802. In other embodiments, thermostat 600 maydisplay the error code on a user's device 1502 or in a web-basedapplication connected to the system.

If a fault is detected, standard staging progressions or operatingprocedures may be altered to provide the best experience for the user.For example, an AC unit may normally transition from stage to stagewithout skipping stages. If thermostat 600 has detected that a fault hasoccurred somewhere within the system, thermostat 600 may command thecompressor to skip the lower stages and go straight to the upper stagesin order to maintain performance. In another example, thermostat 600 mayreceive information from the flow system that a pipe has been cloggedsomewhere in the system, and that airflow has been greatly diminished.In order to maintain performance, thermostat 600 may command an increasein airflow to compensate for the blockage.

Thermostat 600 may alter staging, airflow, or other system parametersbased on historical performance. In some embodiments, analytics service2504 may search through historical data to find periods of operationwhich match conditions and select the settings and commands whichproduced the most desirable result according to the user's preferences.

Thermostat 600 may alter staging progressions or other operatingparameters based on other factors, such as weather conditions andforecasts. Thermostat 600 may be able to receive weather informationfrom a weather service, the network, or a device with which thermostat600 can directly or indirectly communicate. In some embodiments,thermostat 600 is able to receive a weather forecast and make operatingdecisions based on that forecast. For example, thermostat 600 mayreceive information one balmy night that the next morning will be belowfreezing. Thermostat 600 may command the system to go to 100% operatingpower without transitioning through lower stages. In some embodiments,thermostat 600 may change the setpoint from the user defined setpointusing the weather information received.

Thermostat 600 may alter staging progressions or other operatingparameters based on factors such as user demand or level of activity. Insome embodiments, thermostat 600 adjusts operating parameters when auser commands a sudden and significant change in temperature. Forexample: it is below freezing outside and a user has returned home aftervacation; the HVAC system is suddenly powered on and commanded to heatthe home to 72° F.; thermostat 600 commands all equipment to operate atmaximum capacity in order to reach the setpoint as soon as possible. Inother embodiments, thermostat 600 detects the level of occupancy andactivity, and adjusts operating parameters accordingly. For example:there is a party in the home and there are many people dancing;thermostat 600 detects the high level of occupancy and activity andcommands all equipment to operate at maximum capacity in order tomaintain the setpoint. It is understood that thermostat 600 may detectthat there is low or no occupancy or activity and adjust operatingconditions accordingly. For example, thermostat 600 may detect thatthere is little activity and command equipment to operate at lowcapacity and as efficiently as possible. In some embodiments, thermostat600 may detect that there is no occupancy and that the outsideconditions are acceptable and turn off all equipment in order to saveenergy.

Thermostat UI Features, Integration, Branding, and Social Media UIFeatures

Referring again to FIG. 8, thermostat 600 is shown to have a display802, and a frame 804. Display 802 and frame 804 may both betouch-sensitive, and accept user input as commands to thermostat 600.

Referring now to FIG. 27, a variety of ways to provide input tothermostat 600 are shown. Buttons 2702, 2704, 2706, and 2708 may beembodiments of buttons 806-812. Buttons 2704 and 2708 are shown indashed outlines to clarify that they are not visible or physicalbuttons. Buttons 2702 and 2706 are shown in solid outlines, and are anexemplary embodiment of buttons printed on and defined by a physicalskin. In some embodiments, hidden buttons are placed around frame 804.Having the option of providing input through the frame allows users tocontrol thermostat 600 without obscuring display 802. In someembodiments, users are able to provide a direct touch to buttons 2704and 2708 in the form of a button push. In some embodiments, users areable to provide input in the form of gestures on frame 804. For example,a user may be able to swipe up or down to scroll, or left or right tomove through screens. Input method 2712 is an exemplary method ofinteraction with the touch-sensitive buttons on frame 804. Thermostat600 may recognize voice commands. Input method 2714 is an exemplarymethod of interacting with thermostat 600 via voice commands. Thermostat600 may recognize input through the use of sensors 602-606. One ofsensors 602-606 may be a camera, an IR sensor, a microphone, acapacitive sensor, or any other conceivable sensor. In some embodiments,sensors 602-606 are embodied as a microphone and voice recognitionmodule 716 of memory 704 processes input locally. In other embodiments,the voice input may be sent to network 2422 and processed by a separatemodule. In some embodiments, a user gives voice commands to theirpersonal device 1502 which processes the input and transmits the commandto thermostat 600. Thermostat 600 may be programmed with a specificvoice command that will not be commonly or accidentally said to enterdealer or advanced mode. For example, the phrase “advanced dealer mode23” may be said to enter dealer mode when making a house call.

Thermostat 600 may recognize gesture controls through the use of sensors602-606. For example, a user may perform a certain gesture to indicatereturning to the menu, increasing the temperature, decreasing thetemperature, or locking thermostat 600. Many types of gestures ofvarying complexity may be accepted as input to thermostat 600. Forexample, a user may swipe up or down to scroll. In some embodiments,gesture input is processed locally by a memory module gesture processor.In other embodiments, gesture input is received by thermostat 600 andsent to a processor connected to the network. The command is thentransmitted to thermostat 600. In some embodiments, a specific gesturemay put thermostat 600 in dealer or advanced mode. For example, anuncommon gesture such as making two circles may be used by a dealer whenmaking a house call to put thermostat 600 into dealer mode.

Users may add customizable skins to thermostat 600 to alter itsfunctionality and appearance. Skins may be physical appliques similar tostickers, or they may be a certain selection of settings. In someembodiments, skins have buttons printed in various locations. In someembodiments, the buttons are circles, squares, arrows or any othershape. In some embodiments, the buttons are customized images such as adealer logo. In some embodiments, the buttons are custom images selectedby a user. Skins may transmit the location of these buttons relative toframe 804 such that a touch of the button on the skin will register asan input associated with that location on frame 804. Users can designtheir own skins with their preferred button placement to apply tothermostat 600. In some embodiments, users may use an application(web-based, mobile application, or otherwise) or user interface 612 ofthermostat 600 to define button placement on the frame and generate adigital file of the customized skin. Users may be able to define thefunctionality of buttons on the frame. In some embodiments, user createdskins may be printed out by sending the digital file of the customizedskin to a dealer. In other embodiments, custom skins can be sent to themanufacturer (e.g., Johnson Controls Inc.) to be printed. Skins may becreated and applied to thermostat 600 prior to delivery. In someembodiments, users may design their own skin for thermostat 600 at thetime of ordering. For example, Jack may wish to purchase a thermostat600 for their grandmother who cannot see very well and does not want touse every feature of thermostat 600; he creates a skin with large,clearly printed buttons and simplified menus when ordering thermostat600. In other embodiments, skins are created for dealers and appliedprior to sale. Dealer created skins may include a dealer's logo, custombutton configurations, unique settings, and contact information. Forexample, a dealer may program their information in as the contact when afault requiring repair occurs. In some embodiments, skins may include 3Dfeatures such as braille to assist a visually impaired user to interfacewith the device. One of the 3D features may indicate a command to thedevice to read at least some of the information displayed over thespeaker.

Skins may easily be shared over social media. Users may post designs forphysical skins as well as the actual configuration skin. In someembodiments, other users can select skins to try on their respectivethermostat 600. Users may share results of their detailed energy usagereports to foster a sense of competition and to encourage others to beconscious of their energy usage. For example, a user may post their newconfiguration skin with the message “Went up by 1 degree and saved $5this month! #1degreeatatime #jci #savingtheworld #fahrenheit#imperialsystem4ever.”

Many screens are available within user interface 612 which allow theuser to control and interact with thermostat 600. In some embodiments,thermostat 600 is able to learn from user input and behavior. Thermostat600 may store frequency of screen visits, and automatically open to themost viewed screen. Thermostat 600 may allow users to select theirfavorite screen to be displayed first whenever user interface 612 isviewed. Buttons 806-812 can be used to interact with display 802. Insome embodiments, editing the placement of the buttons and the set-up ofthe screens shown on display 802 can be done through an application onthermostat 600 or user device 1502.

Referring now to FIG. 28, an exemplary process 2800 of controllingthermostat 600 by sending it text messages is shown. Thermostat 600 mayhave its own unique number at which it can receive messages through thecellular network. In step 2802, a user opens the messaging app of theircellphone and selects thermostat 600. In step 2804, a user sendsthermostat 600 the message “72” and thermostat 600 acknowledges.Depending on the settings selected by the user, thermostat 600 willinterpret the number received as either degrees Fahrenheit or degreesCelsius. In some embodiments, thermostat 600 will be able to detect,based on which user is sending the command, which units are beingspecified. Thermostat 600 may determine that the command received iseither degrees Fahrenheit or degrees Celsius based on predeterminedlimits, as there is little chance that a user would like for their hometo 25° F. or 72° C. In step 2806, thermostat 600 adjusts operation inaccordance with the target temperature received in the previous step.Thermostat 600 may receive commands from any source. It is contemplatedthat thermostat 600 may receive commands from an email, a phone call, avideo message, a social media message, or any other form ofcommunication.

Referring now to FIG. 29, thermostat 600 may connect to social media togather event data and adjust scheduling accordingly. Thermostat 600 maydetermine that a user will not be home because they will be at an eventat a location which is not home and reduce conditioning to operate moreefficiently until it is anticipated that the user will return home. Forexample, a user may accept an invitation to a dinner at a restaurantfrom 1900 until 2200 one evening. Thermostat 600 may reduce conditioningat 1900 and, depending on the expected time to the setpoint at which theuser left the home, may begin to increase conditioning an appropriateamount of time prior to 2200. In some embodiments, thermostat 600 maydetermine that an event is occurring at home and adjust scheduling andoccupancy accordingly. For example, FIG. 29 shows that seven people areattending a hype club for Thermostat (possibly thermostat 600) at Jackand Jill's house. Thermostat 600 determines that Jack and Jill's houseis home, and that occupancy will be seven people on August 17^(th) from1630 to 2030. Thermostat 600 will adjust conditioning, scheduling, andoccupancy on August 17^(th) to accommodate the high occupancy and thescheduled event so that the home will be conditioned by the time theevent starts. There are situations in which a user may wish to delayscheduled events or the programmed schedule for thermostat 600. In someembodiments, thermostat 600 may communicate with a user's calendarapplication or clock application so that when the user chooses to“snooze”, thermostat 600 will delay scheduling by the amount that thesnooze is set for. For example, if thermostat 600 is scheduled to reduceheating when Jack is at work from 0900 until 1700 on a winter day, butJack has a late morning meeting he would like to get more sleep for, hecan hit snooze for 30 minutes in the alarm app on his phone and resteasy knowing that thermostat 600 will not suddenly leave him freezingwhile he is getting ready.

Integration of Other Systems/Cloud

As shown in FIG. 24, thermostat 600 is capable of communicating withmany devices. Thermostat 600 may receive data from various sensorsaround the home to use when making operating decisions. Thermostat 600may be able to determine occupancy without the use of an integratedsensor if sensors in places such as windows and doors are installed andconnected to thermostat 600 or the network. For example, thermostat 600may determine that the home is occupied upon activation of the frontdoor sensor and begin conditioning the home based on the master user'spreferences. Thermostat 600 may detect that a window or door is open anddisplay a message on display 802 or in some embodiments on device 1502warning a user that a window or door is open and may cause an increasein energy consumption and a decrease in efficiency. Thermostat 600 mayalso determine that the home is no longer occupied upon a secondactivation of the front door sensor and begin reducing conditioning ofthe home. It is understood that more sophisticated algorithms fordetermining occupancy may be used to prevent issues such as a guestentering a home, letting a pet outside, or other such situations.Thermostat 600 may communicate with users' personal devices, such ascellphones, heartrate trackers, fitness trackers, or any of a variety ofpersonal devices. In one embodiment, thermostat 600 may determine levelof activity based on information from a user's heartrate or fitnesstracker and adjust conditions accordingly.

In some embodiments, thermostat 600 may be connected to thermal sensors.In some embodiments, thermal sensors are infrared temperature sensors.The thermal sensor may be located in different rooms of a building.Thermostat 600 may use information received from the thermal sensors todetermine what rooms are occupied and/or unexpected temperatureincreases in a room. For example, thermal sensors may identify that anindividual is exercising in Room A and thus lower the temperaturesetpoint in Room A to keep the individual exercising comfortable. Insome embodiments, thermostat 600 may identify that a room in thebuilding is much hotter than other rooms. For example, thermostat 600may identify that Room B is warmer than Room A based on informationreceived from the thermal sensors. Thermostat 600 may identify thatthere is a problem with HVAC equipment in Room B based on thiscomparison. In some embodiments, when thermostat 600 identifies anunexpected temperature increase, thermostat 600 tells a user to havethermostat 600 and/or HVAC equipment connected to thermostat 600serviced. In some embodiments, thermostat 600 may give the user specificinstructions through user interface 612 for improving the performance ofthermostat 600 and/or the HVAC equipment connected to thermostat 600.For example, the specific instructions may be changing air filters,checking for blocked duct pipes, closing windows or curtains in certainrooms, and/or any other method that can be used to prevent the HVACsystem from becoming damaged and/or using excessive amounts of energy.

Thermostat 600 may have control over other systems in the home, such asthe lighting system or the security system. In some embodiments, whenoccupancy is detected, thermostat 600 may turn on lights where a user isdetermined to be. For example, if Jill comes home, checks in, andproceeds to her bedroom, thermostat 600 may turn on the lights on theway from the door to Jill's bedroom. In other embodiments, thermostat600 may be able to turn off lights when occupancy is no longer detected.Thermostat 600 may enable the security system when occupancy is nolonger detected. For example, if Jack leaves for work but forgets to setthe alarm, thermostat 600 may arm the security system after failing todetect occupancy in the entire home for 30 minutes. In some embodiments,thermostat 600 may be able to disarm the security system if occupancy isdetected. For example, if Jill comes home and checks in, thermostat 600may disarm the security system. It is understood that more sophisticatedalgorithms may be used to prevent issues associated with the turning onof lights in rooms where a user may be sleeping or enabling the alarmsystem while users are still home. Thermostat 600 may be able to controlsystems such as blinds, windows, and doors. Thermostat 600 may be ableto draw blinds or close doors or windows when occupancy changes, or inorder to improve efficiency or performance of the system.

Thermostat 600 may receive data from a weather service, as mentionedpreviously. In some embodiments, thermostat 600 may show the forecast ondisplay 802. Thermostat 600 may be able to send the forecast to a user'sphone on a schedule or upon check-in with thermostat 600.

Thermostat 600 may communicate with commercial storage solutions such asDropbox, Google Docs, or Amazon Cloud. Thermostat 600 may store data insuch places in order to record trends and make data and analytic reportsmore accessible to users. Storing data in places other than local memorywill also reduce the cost of thermostat 600 as a unit and promote sales.

Thermostat 600 may communicate with the network to receive firmwareupdates. In some embodiments, the firmware updates are for connectedequipment. For example, thermostat 600 may receive a notification thatthe AC unit has an available firmware update. Thermostat 600 may show aprompt on display 802 with a message such as: “A firmware update isavailable for your AC unit. Would you like to call your dealer toschedule a home visit?”

Thermostat 600 may communicate with a user's utility provider. Systemperformance data may be integrated with utility data in order to monitora home's level of energy usage and inform users of their usage habits.

Branding

The appearance of thermostat 600 can easily be changed to a dealer orend user's preference. This flexibility provides many opportunities formarketing and promotion of a brand. Dealers may choose to use custombranding in order to familiarize consumers with their business. Dealersmay be provided with skin templates to choose from which will change theuser interface or the physical appearance of thermostat 600; these skintemplates may be further customizable. For example, dealers may bepresented with three or four skin templates for the user interface ofthermostat 600.

An application may allow a dealer to customize the color scheme of hischosen template. In some embodiments, this application is a stand-aloneapplication to be accessed through a computing device such as a laptopor smartphone. In other embodiments, this application is a web-basedapplication which may be accessed through any network connection.Dealers may be able to customize the fonts used in the user interface oron the physical skin. In some embodiments, dealers may choose from aselection of chosen font pairs which go well together. In someembodiments, the skin created with such a branding design tool may beapplied, prior to sale, to all thermostats a dealer sells. In someembodiments, the branding is dealer information. Dealer information mayinclude a dealer phone number, a dealer address, dealer store hours, adealer RSS feed, and a dealer logo. In some embodiments, thermostat 600is branded at installation. In some embodiments, a skin template may beavailable which is tailored to meet the Americans with Disabilities Act(ADA) specifications. Color schemes, font size and choice and animationsmay be customized to meet ADA specifications. Features such as ADAcompliant sounds or other feedback may be made available through thebranding tool. Dealers may wish to use a more subtle method of branding;for example, using only the logo or icon without the brand nameattached.

As shown in FIG. 22A, a dealer can program their contact informationinto thermostat 600 to be made available to an end user whenever serviceor advice is needed or maintenance is required. In some embodiments, themaintenance is needed for thermostat 600. In some embodiments, themaintenance is needed for equipment connected to thermostat 600. In someembodiments, the dealer can program the dealer's address and store hoursinto thermostat 600. In some embodiments, thermostat 600 includes amicrophone and a speaker. Dealers may choose to customize a physicalskin which will provide a button for a user to press which will call thedealer when pressed. The call may be placed as a Voice over InternetProtocol call. The call can utilize a microphone and speaker ofthermostat 600. In some embodiments, thermostat 600 will communicatewith the user's cellphone and automatically place the call via theuser's cell phone.

In some embodiments, dealer information and/or dealer branding may beshown on user interface 612 of thermostat 600. The dealer branding maybe displayed at a first rate such as twice an hour when the HVAC systemis operating normally, and may be displayed at a second rate higher thanthe first rate, such as 12 times an hour (or continuously), when theHVAC system is not operating normally or optionally if a setpoint cannotbe achieved. In some embodiments, the thermostat 600 may include acamera module. If a camera module is present, the thermostat may chooseto display the dealer branding if a user is in the vicinity of thethermostat 600.

Referring now to FIG. 30, thermostat 600 may include unobtrusive dealerspecified content on certain screens. In some embodiments, this mayinclude an RSS feed of the dealer's website to keep the end userapprised of activity relating to the dealer. For example, thermostat 600may include a news screen at the bottom of which exists a window whichshows an RSS of a dealer's website. In other embodiments, this mayinclude advertisements for dealer services and specials in which an enduser has indicated an interest. Advertisements for partner companies andservices may also be shown. In some embodiments, advertisement selectionmay be based on information made available to thermostat 600. Forexample, if a user has no events schedule and it is a hot summer day,advertisements for a water park owned by a partner company may beselected for display to that user. In one embodiment, advertisements maybe based on events scheduled for the user; for example, advertisementsfor partnered hotels may be selected if a user is scheduled to travel.

Thermostat 600 may communicate with the network, and as such, may beupdated remotely. In some embodiments, changes to a skin may be madeafter purchase. For example, a user may purchase thermostat 600 from afirst dealer who is then bought out by a second dealer. The seconddealer may decide to rebrand thermostat 600 so that end users haveupdated contact information on hand for when they need assistance. Theupdated information also brings more awareness to the new owners,possibly generating more revenue.

Referring now to FIG. 31, thermostat 600 is shown to have a social mediapresence. Thermostat 600 may have social media profiles on differentsocial media networks. In some embodiments, users may choose to postreviews, comments, skins, and settings for thermostat 600.

Thermostat 600 may include the Johnson Controls Inc. logo in all skins,settings, and configurations. The new slogan of Johnson Controls Inc.may be incorporated and featured in order to highlight changes andrefresh impressions of the brand in a user's mind.

Thermostat 600 may communicate valuable data and feedback to a dealer.Thermostat may record and report how many service calls were provided orhow many home visits were saved as a result of thermostat 600'sfeatures. In some embodiments, thermostat 600 records and reports theamount of advertisement revenue to the dealer. In some embodiments,thermostat 600 records any parts and equipment purchased through and/orfor thermostat 600. In some embodiments, thermostat 600 reports any newequipment or parts purchased to the dealer. Thermostat 600 may provide adealer with analysis of increased revenue and business as a result ofthermostat 600. For example, each thermostat installed reports datawhich is aggregated by a revenue analyzer connected to the network. Atthe end of the fiscal year, a report is transmitted to the dealerdetailing the revenue generated as a result of thermostat 600. Thereport may highlight that as a result of advertisements and directdealer contact information made available by thermostat 600, 1000 morecustomers have been reached per month—an estimated $100,000 increase inrevenue.

In some embodiments, thermostat 600 may automate maintenance schedulingand consumables ordering. For example, filters may be ordered from thedealer automatically and delivered to a user when a filter change isneeded. Thermostat 600 may prompt the user to call their dealer andschedule a maintenance appointment if the user wishes. In someembodiments, thermostat 600 may notify a user that it is time toschedule a maintenance appointment or to order consumables, giving userscontrol over whether they wish to make any purchases or appointments.

Thermostat 600 may analyze a dealer's revenue and provide informationand feedback targeted to improving performance and generating morebusiness. For example, each thermostat installed by a particular dealertransmits dealer-relevant data to the network to be analyzed by a dealerperformance analyzer. The results, showing that his customer base hasnot expanded in the last year, are sent to the dealer. The performanceanalyzer has discovered that the dealer has not been entering hiscontact information or using customized skins advertising his brand.

Algorithms/Analytics

Processing of data is done by memory module analytics service 2504. Insome embodiments, thermostat 600 sends the data to be analyzed to thenetwork, which transmits the data to a data analyzer 712 remote fromthermostat 600. Thermostat 600 may receive input from a user todetermine what analysis or algorithm is applied to the data or to acontroller for a connected component.

Referring now to FIG. 32, thermostat 600 is able to graph power usage ofa home. Thermostat 600 may process data periodically in order to displayresults instantaneously when requested by a user. Thermostat 600 mayfilter data based on user inputs, or thermostat 600 may offer severalpredetermined filters. In one embodiment, thermostat 600 is able todetermine and display system energy usage per compressor stage, fanspeed, or any quantifiable metric, allowing a user to make informeddecisions regarding her energy usage habits. For example, thermostat 600may analyze data from the past month and report that Jill has been using20% more energy by setting the compressor to run in stage 3 instead ofstage 2. This increase in energy over the 10 days the system has been atstage 3 has resulted in a net increase of $5 over Jill's standard energybill. With this information, Jill may decide whether she prefersefficiency or comfort, and adjust (or not) her usage accordingly.

Referring again to FIG. 32, thermostat 600 is able to compare one home'senergy usage with another home of similar size and setup. For example,thermostat 600 may identify homes of similar square footage andequipment configuration which are located in a similar climate forcomparison with the home it belongs to. In some embodiments, users mayelect to view comparisons of their usage with that of a dissimilar home.For example, users may wish to estimate their energy usage with anaddition to their current home or in a new home they plan to buy.

Referring now to FIG. 33, thermostat 600 may be compatible with externalaccessories. Thermostat 600 is shown to include port 3302. Thermostat600 may contain multiple ports. Port 3302 may be compatible with USB,Thunderbolt, HDMI, Ethernet, 3.5 mm, or any other communicationsstandards, and may be used to communicate tabulated, visual, audio, orany other type of data. FIG. 33 is shown to include external accessory3304. In one embodiment, external accessory 3304 is exclusivelycompatible with thermostat 600. In some embodiments, external accessory3304 is compatible with a variable of devices, and can transfer databetween thermostat 600 and another device compatible with externalaccessory 3304. For example, external accessory is a USB dongle whichcan store data to be analyzed from thermostat 600 and transfer the datato a laptop. The results of the analysis, including any visualrepresentations, may be transferred to thermostat 600 for display. Insome embodiments, external accessory 3304 is able to communicate withuser device 1502 and may be used during installation fortroubleshooting. For example, external accessory 3304 may be a phonedongle which assists a technician in troubleshooting wiring installationsuch as a Cat5e tester.

In some embodiments, thermostat 600 is able to analyze data transferredfrom another source through external accessory 3304 and generate areport for display. For example, thermostat 600 may receive billing datafrom external accessory 3304 and integrate billing data with usage andoperational data to generate a report correlating a user's usage habitsand behavior with their energy cost. External accessory 3304 may provideadditional capabilities to thermostat 600. External accessory 3304 maycontain a data analyzer 712 or a data mapping module. In someembodiments, external accessory 3304 contains communications means whichthermostat 600 does not otherwise have. For example, thermostat 600 mayonly have communications electronics which are configured for Bluetoothcommunications. External accessory 3304 contains communicationselectronics which allow thermostat 600 to communicate over WiFi,expanding the network of devices and applications with which thermostat600 can interact. In one embodiment, a previous model of thermostat maybe retrofit with external accessory 3304 to gain functionality offeatures of thermostat 600.

Thermostat 600 may analyze system performance to determine and monitorsystem health. Thermostat 600 may compare current performance withhistorical data to determine whether each piece of equipment orcomponent of the system is fully functional. For example, thermostat 600logs the energy usage of HVAC equipment. Thermostat 600 identifies thecurrent energy usage of the HVAC equipment and compares the currentenergy usage of the HVAC equipment to the historical energy usage of theHVAC equipment. In another example, thermostat 600 may find that thecompressor has been on the same stage for a week, but system performancehas decreased in the past two hours. Thermostat 600 may determine thatthe compressor is no longer functioning correctly, and prompt the userto call the dealer to schedule an appointment. Thermostat 600 may beable to provide an estimate of the lifetime of consumables based onhistorical service and operating condition data. For example, thermostat600 may estimate that the air filter will need to be replaced in 10 daysdue to records that it had last been replaced 40 days ago during aservice call, and that the system is operating at high capacity becauseit is summer. Thermostat 600 may prompt the user to order a new filter,automatically order a new filter, or ask the user if he would like toschedule a maintenance appointment.

Thermostat 600 is able to provide tips and suggestions to users based onanalysis of their usage and habits. Thermostat 600 may allow users toinput preferences with regards to efficiency or comfort. Thermostat 600may allow users to input a target energy bill amount. With theseguidelines, thermostat 600 may be able to suggest setpoints within areasonable range of a user's current setpoint which may help the user toachieve their goal payment. For example: Jack wishes to reduce hismonthly electricity bill from $300 to $250. It is August, and Jackcurrently sets his thermostat to 66° F. Thermostat 600 may analyzebilling data and system performance from the past two Augusts todetermine and propose a new setpoint. Thermostat 600 may suggest to Jackthat moving the setpoint up by just two degrees to 68° F. may lower hiselectricity bill to $275, and that moving the setpoint up to 70° F. mayallow him to reduce his electricity bill to $250. This situation givesJack options and provides a middle ground choice if he wants to make acompromise.

Thermostat 600 may give users tips based generally on their indicationof preference for either comfort or efficiency. In some embodiments,thermostat 600 may be able to draw from a preformed pool of general tipsrelating to either increased user comfort or increased energyefficiency. This prepopulated source of tips allow thermostat 600 toquickly provide simple tips to a user. For example, if Jill hasindicated that she prefers efficiency to comfort, thermostat 600 mayperiodically display tips for reducing energy usage, such as raising thesetpoint on a hot day, closing the windows when running the conditioningsystem, or choosing conservative stage progressions for a compressor. Itis understood that many other tips may be given, and that tips ofsimilar weight are given for users who indicate a preference forcomfort. In some embodiments, general tips may be correlated withactions a user is currently taking. For example, if a user, who hasindicated a preference for efficiency, is lowering the setpoint on a hotday, thermostat 600 may display a prompt informing the user that theircurrent course of action will result in a decrease in energy efficiency.

Thermostat 600 may offer suggestions to a user based on his history ofenergy consumption and system settings. For example, thermostat 600 mayanalyze Jack's energy consumption from the past year, as well as hisoperational settings. He has increased fan speed, increasing energyusage, but has not seen any changes in performance. Thermostat 600 mayalert Jack that he can reduce his energy usage without sacrificingcomfort.

Thermostat 600 settings may be shared with other users. In oneembodiment, thermostat 600 may communicate with other thermostatsconnected to the network to find similar homes with similar settings.When system with settings that match closely to that with whichthermostat 600 is associated is found, and that system is performingbetter in the area of a user's preference, either efficiency or comfort,thermostat 600 may suggest changing current settings to match those ofthe other system exactly.

Thermostat 600 may be able to provide a user with a suggested operationprocedure or stage progression based on the cost determined per stage aswell as the estimated time to reach a setpoint. In one embodiment, auser indicates her preference for comfort, and thermostat 600 offersstaging suggestions based on her calculated cost per stage to increaseefficiency. Staging suggestions include which stages to proceed to or toskip, and how long it will take for the system to reach the setpoint.Several options with varying total times and energy consumption may beoffered.

Thermostat 600 may analyze the performance of a system and makerecommendations to assist a user in meeting their goals and maintainingfunctionality of their system. In some embodiments, thermostat 600 mayoffer a suggestion on whether a home should run on gas or electricity.In other embodiments, thermostat 600 may communicate with a usermaintenance portal. The maintenance portal may be a web-basedapplication or a stand-alone application. The maintenance portal allowsusers to schedule seasonal check-ups and make appointments for housecalls. Memory 704 of thermostat 600 may contain a schedule analyzer. Theschedule analyzer may select time slots during which a user is notscheduled for any events and suggest those time slots as appointmenttimes in the maintenance portal. In some embodiments, the maintenanceportal automatically creates reminders for necessary maintenance basedon service records. In other embodiments, users create reminders toschedule maintenance and review service records. Thermostat 600 maydetermine that a piece of equipment is running for a longer amount oftime than usual to achieve the same results. In some embodiments,thermostat 600 may suggest to a user that the equipment may need repairsin order to increase efficiency and comfort, and offer to call thedealer.

Thermostat 600 provides many opportunities for partnerships over socialmedia platforms. Thermostat 600 may allow users to command changes fromsocial media posts. For example: Jill tweets privately at thermostat600: @thermostat100 72, and thermostat 600 tweets back: @jillandjackCommand received. Thermostat 600 may have a unique Twitter handle. It isunderstood that any social media platform may be used to post changes tothermostat 600. In some embodiments, thermostat 600 may allow actionsspecific to a social media platform to command changes. For example:Jack likes system settings for a thermostat which Jill has posted onFacebook. Thermostat 600 detects this action and applies the settings.In some embodiments, companies or dealers may promote well-tested andpopular settings for users to try in order to increase traffic to theirwebsite or related products. In some embodiments, partnered companiesmay create skins for users to download or purchase and apply. Forexample: a fitness tracker manufacturer may create a health-centric skinwhich collects data from a connected fitness tracker and provides tipsand suggestions for healthy living.

Referring now to FIG. 34, a process 3400 for determining a time tosetpoint for HVAC equipment 2420 and making recommendations withthermostat 600 is shown, according to an exemplary embodiment. The timeto setpoint can be an amount of time required to reach the setpointbased on current or predicted environmental conditions and thecapability of the HVAC system operated by the thermostat. In FIG. 34,thermostat 600 is configured to receive a requested setpoint (step3402). In some embodiments, the setpoint is a temperature setpoint, ahumidification/dehumidification setpoint, and/or any other environmentalsetpoint. In some embodiments, the setpoint request is made through userinterface 612 of thermostat 600. In some embodiments, the setpointrequest is made through social media activity. In some embodiments, thesetpoint request is made through a wireless connection such as wifi,Bluetooth, or NFC. when a user checks into thermostat 600. Thermostat600 is configured to determine if the setpoint requested in step 3402 isachievable (step 3404). Thermostat 600 makes the determination that thesetpoint is achievable based on a plurality of factors. The factors caninclude a thermal load, a time of day, a connected electrical gridstatus, agreements to not operate equipment such as at certain times ofthe day, weather conditions, historical data, equipment status andfunctionality and any other factor that affects the ability of the HVACequipment 2420 to reach the requested setpoint. In some embodiments, alevel of occupancy can be inferred from the thermal load derived time tosetpoint data.

In some embodiments, thermostat 600 is configured to determine if asetpoint is unachievable based on a comparison of zones in a home. Insome embodiments, there may be a plurality of zones in a home. Each zonemay be heated and conditioned to a different temperature. In someembodiments, thermostat 600 controls multiple zones. For example,thermostat 600 may be cooling zones Zone A and Zone B to 65 degreesFahrenheit. Thermostat 600 may identify that Zone A reaches 65 degreesFahrenheit from a room temperature of 80 degrees Fahrenheit in 10minutes. Thermostat 600 may identify that Zone B has taken 25 minutes toreach 75 degrees Fahrenheit from a room temperature of 80 degreesFahrenheit. In some embodiments, thermostat 600 may be configured todetermine that Zone B cannot reach 65 degrees Fahrenheit.

In some embodiments, when a zone cannot reach a setpoint based on a zonecomparison, thermostat 600 identifies possible reasons why the zonecannot reach the setpoint. In some embodiments, the thermostat 600 mayidentify the time of day and the location of the zones. For example, at6:30 P.M., thermostat 600 may identify that one zone on the west side ofthe home is not reaching its setpoint as compared to another zone on theeast side of the home. Thermostat 600 may provide recommendations to theuser (step 3408) that are the result of the zone comparison. Forexample, thermostat 600 may notify a user that he or she should waituntil the sun goes down before attempting to request a low setpointand/or may tell a user to close his shades. For example, thermostat 600may be configured to tell a user “In three hours it will be darkoutside, you should wait three hours before attempting this setpoint.”

In some embodiments, thermostat 600 may be configured to monitor and/oroperate dampers and fans. In some embodiments, thermostat 600 may make acomparison between the two zones based on the differences between thezones such as a ceiling fan running, dampers being open or closed, astove generating heat, and any other piece of equipment thermostat 600may be able to monitor and compare between two zones. For example,thermostat 600 may determine that Zone A is reaching a temperature of 65degrees Fahrenheit from a room temperature of 80 degrees Fahrenheit butZone B reaches a temperature of 75 degrees Fahrenheit from a roomtemperature of 80 degrees Fahrenheit over the course of an hour.Thermostat 600 may identify that Zone A has a fan running and Zone B isa kitchen and has a stove turned on and a fan turned off. Thermostat 600can provide recommendations to the user (step 3408) such as, “You have astove running, you won't be able to reach the setpoint” and/or “Turn onthe fan in Zone B”.

Still referring to FIG. 34, when thermostat 600 determines that thesetpoint is not achievable (step 3404), thermostat 600 informs the userthat the setpoint is not achievable (step 3408). Thermostat 600 caninform the user that the setpoint is not achievable in a number of ways.In some embodiments, the thermostat 600 displays a notification to theuser through user interface 612. In some embodiments, the thermostat 600sends a notification to the user that the setpoint is not achievablewhen the user checks in with thermostat 600 via NFC. In someembodiments, the thermostat 600 sends a notification to the user thatthe setpoint is not achievable by generating a social medianotification.

Still referring to FIG. 34, thermostat 600 is configured to makesuggestions when thermostat 600 determines that the requested setpointis not achievable (step 3408). In some embodiments, the suggestionincludes a plurality of suggestions that can be served to a user throughNFC, a social media notification, and thermostat 600's user interface612. In some embodiments, suggestions include closing drapes, closingwindows, closing dampers to unused spaces, and turning on fans. In someembodiments, the suggestions can be implemented by HVAC equipment 2420.In some embodiments, the suggestions include a plurality of recommendedsetpoints and a time to setpoint for each setpoint. Thermostat 600 candetermine the time to setpoint for each time to setpoint by using aplurality of factors. The factors can include thermal load, time of day,electrical grid status, weather, historical equipment data, andequipment functionality.

Still referring to FIG. 34, thermostat 600 is configured to control HVACequipment 2420 to the requested setpoint when thermostat 600 determinesthat the requested setpoint is achievable. Thermostat 600 serves anotification to the user of what the time to setpoint is for therequested setpoint. In some embodiments, thermostat 600 displays thetime to setpoint on user interface 612. In some embodiments, thermostat600 sends a notification to a user device via NFC when a user checks inwith thermostat 600. In some embodiments, thermostat 600 sends anotification to a user through a social media notification.

In some embodiments, thermostat 600 determines the time to setpoint fora requested setpoint and preemptively adjusts the setpoints based onexpected occupancy for a building. In some embodiments, thermostat 600identifies an expected occupancy of a building from scheduler 726,social media server 2506, calendar server 2508, and mobile applicationserver 2507. For example, a building may be unoccupied at 1:00 P.M.Thermostat 600 identifies that Tom will be in the building at 2:00 P.M.based on a social media message he sent to Joe. The social media messagemay read, “I will be at the building at 2:00 P.M.”. The thermostat 600knows know that Tom likes a setpoint of 70 degrees Fahrenheit.Thermostat 600 determines that it will take 10 minutes to reach asetpoint of 70 degrees Fahrenheit. Thermostat 600 waits until 1:50 P.M.and then adjusts the set point to 70 degrees Fahrenheit. The buildingreaches a temperature of 70 degrees Fahrenheit at 2:00 P.M. when Tomreaches the building.

Referring now to FIG. 35, a process 3500 for identifying if a fault canbe serviced by a homeowner and suggestions to clear the fault are shown,according to an exemplary embodiment. In FIG. 35, thermostat 600 isconfigured to detect and identify faults (step 3502). Thermostat 600 mayreceive fault information from HVAC equipment through bidirectionalcommunication as described in FIG. 21. Thermostat 600 may use the faultcodes of the identified faults to determine possible solutions to thefault. If thermostat 600 identifies that the faults identified can beserviced and fixed by a homeowner (step 3504), thermostat 600 candisplay fault information and instructions to fix the fault on the userinterface 612 of thermostat 600 (step 3506).

In some embodiments, thermostat 600 may ask the user if the user wouldlike to perform the instructions to fix the fault or if the user wouldlike to immediately call a dealer. The instructions may be to powercycle a breaker, check filters for derbies, check registers forblockage, or any other instruction that a homeowner could perform.Thermostat 600 can then check if the fault has been cleared (step 3508).If the fault has been cleared, the thermostat 600 can resume theoperation of the HVAC equipment (step 3510). If the thermostatdetermines that the fault has not been cleared, the thermostat isconfigured to display dealer information on the user interface 612 ofthermostat 600. The dealer information may include an address of contactinformation for the dealer. In some embodiments, the thermostat 600prompts the user to directly contact the dealer from thermostat 600. Insome embodiments, thermostat 600 may automatically contact the dealer.In some embodiments, thermostat 600 may request permission beforecontacting the dealer

Referring now to FIG. 36, a process 3600 for determining if setpointsselected by a user are energy efficient and suggesting energy efficientsetpoints to the user is shown according to an exemplary embodiment.Thermostat 600 can be configured to receive setpoints from a user (step3602). Thermostat 600 can be configured to identify energy efficientsetpoints that are within an offset value from the received setpoint(step 3604). The energy efficient setpoints are setpoints thatthermostat 600 determines will use less energy. In some embodiments,thermostat 600 uses historical data gathered and logged from HVACequipment connected to thermostat 600 to determine energy efficientsetpoints. In some embodiments, the historical data is gathered throughbidirectional communication between thermostat 600 and the connectedHVAC equipment. In some embodiments, the historical data includesinformation regarding the connected HVAC equipment. The information caninclude equipment tonnage, runtime of the HVAC equipment, compressorspeed, and any other relevant information about the connected HVACequipment. In some embodiments, thermostat 600 gathers the currentequipment performance from the connected HVAC equipment throughbidirectional communication and uses the current information todetermine energy efficient setpoints. In some embodiments, thethermostat 600 identifies energy efficient setpoints further based onindoor/outdoor temperature. In some embodiments, the energy efficientsetpoint may be calculated on a remote server and communicated tothermostat 600.

In some embodiments, thermostat 600 displays the energy efficientsetpoints to the user along with a calculated cost of each setpoint(step 3606). In some embodiments, thermostat 600 may display a costcomparison between multiple setpoints. In some embodiments, thermostat600 uses past energy bills to determine the cost of running each energyefficient setpoint. Thermostat 600 is configured to receive a commandfrom a user to either accept one of the energy efficient setpoints orreject the energy efficient setpoints (step 3608). If the user acceptsone of the energy efficient setpoints, thermostat 600 implements theenergy efficient setpoint selected (step 3612). If the user rejects theenergy efficient setpoint, thermostat 600 does not change the setpoint(step 3610).

Referring now to FIG. 37, process 3700 for updating and displaying adealers contact information and/or branding is shown according to anexemplary embodiment. In some embodiments, process 3700 is executed onone or more processors or other circuits configured to execute process3700. In some embodiments, thermostat 600 receives the updates from anetwork connection, the Internet, a transfer of data via NFC, and/or anyother method for updating thermostat 600. Thermostat 600 is configuredto determine when to update a dealer's information and/or branding (step3702). In some embodiments, the dealer's information and/or brandingalong with dealer related settings are stored on thermostat 600 inremote data storage 718. In some embodiments, thermostat 600 isconnected to the internet and/or any other network and can retrievedealer information and/or branding from a web server. In someembodiments, thermostat 600 is configured to update the dealer'sinformation and/or branding when a set amount of time has passed. Insome embodiments, thermostat 600 is configured to update the dealer'sinformation and/or branding when thermostat 600 enters a commissioningmode. In some embodiments, thermostat 600 is configured to update orchange the dealer's information, related settings, and/or branding whena contract between a third party and the dealer has started or ended. Insome embodiments, thermostat 600 is configured to receive new brandingwhen a dealer updates their branding, the dealer associated with thethermostat changes from a first dealer to a second dealer, and/orthermostat 600 is installed for a first time. In some embodiments, thedealer pays the third party to have the dealer's information stored andadvertised on thermostat 600. In some embodiments, the dealer'sinformation and any relevant settings must be updated according to thestatus of the contract (e.g. payments being on time or late). In someembodiments, relevant settings are the frequency at which thermostat 600displays the contact information of the dealer.

Still referring to FIG. 37, thermostat 600 is configured to update thedealer's information and/or branding (step 3704). In some embodiments,thermostat 600 receives dealer information items which include anaddress of the dealer, a phone number of the dealer, a web address ofthe dealer, a configurable branding, and any other information thedealer wants to display on user interface 612 of thermostat 600. In someembodiments, thermostat 600 receives dealer related settings. Thesettings may include a frequency at which thermostat 600 displays thedealer information. In some embodiments, the settings include aconfirmation that the dealer has made advertising payments on time tothe third party. In some embodiments, there is a setting which stops thedisplay of the dealer's contact information when the dealer has not madepayments on time and/or the dealer has cancelled a contract with thethird party. In some embodiments, the dealer information may change todefault dealer settings if the contract with the original dealer iscancelled. In some embodiments, the settings include what combination ofdealer information items to display in a certain circumstance. Forexample, there may be a setting which causes thermostat 600 to displaythe dealer's logo every 20 minutes. There may also be a setting whichcauses thermostat 600 to display the dealer's phone number whenthermostat 600 has a fault. In some embodiments, thermostat 600 receivescustom branding associated with a dealer.

Still referring to FIG. 37, thermostat 600 decides when it shoulddisplay the dealer information (step 3706). In some embodiments,thermostat 600 monitors thermostat 600 events and displays the dealerinformation when an event occurs. In some embodiments, the event is thata set amount of time has passed since thermostat 600 last displayed thedealer information. Thermostat 600 may determine that a set amount oftime has passed and that it is appropriate to advertise the dealerinformation to the user via the user interface 612 of thermostat 600. Insome embodiments, thermostat 600 displays the dealer's information whenthermostat 600 identifies that there is a system fault. In someembodiments, thermostat 600 displays the dealer information and aservice notification when thermostat 600 determines that the thermostat600 and any equipment connected to thermostat 600 needs a maintenancecheck. In some embodiments, the dealer information is displayed as aresult of a maintenance schedule or a determination by thermostat 600that there may be a potential issue with thermostat 600 or any equipmentconnected to thermostat 600. In some embodiments, thermostat 600displays the dealer's contact information when thermostat 600 identifiesthat a user has been looking through thermostat 600 settings orconfigurations through the user interface 612 of thermostat 600 for atime longer than a threshold time. For example, if a user has spent 20minutes looking through thermostat 600 settings, thermostat 600 maydisplay a customer service number for the user to dial and receive helpin whatever task the user is trying to complete with thermostat 600.

Still referring to FIG. 37, thermostat 600 displays dealer informationon the user interface 612 of thermostat 600 (step 3708). In someembodiments, thermostat 600 displays the phone number of a dealer, theaddress of a dealer, a dealer logo and/or name, or any other informationthat the dealer wants to display. In some embodiments, thermostat 600displays a button which allows a user to directly contact the dealerthrough thermostat 600. In some embodiments, thermostat 600 displays anotification that a dealer technician is located within a set distancefrom thermostat 600. For example, thermostat 600 determines that thereis a fault with equipment connect to thermostat 600. Thermostat 600determines that a dealer technician is in the neighborhood of the housewhere the thermostat 600 is located. Thermostat 600 displays anotification that a dealer technician is in the area and has time tostop by and take a look at the fault displayed on thermostat 600. Insome embodiments, a button may be displayed on user interface 612.Pushing the button on the thermostat 600 may cause a smartphone of theuser to make a call to the dealer. In some embodiments, thermostat 600may pass contact information to the smartphone via a wirelessconnection. In some embodiments, the smartphone may use a camera tocollect the contact information presented on the thermostat 600. Thecontact information may be presented on the display or encoded in abarcode or Q code which may be presented on the display.

Referring again to FIG. 24, thermostat 600 is capable of communicatingwith a variety of devices, and entities, including utility providers. Insome embodiments, thermostat 600 may control connected systems.Thermostat 600 may analyze energy usage and billing data from theutility provider and make decisions on which connected appliances orpieces of equipment can be controlled to control load. In someembodiments, thermostat 600 may communicate with a smart meter andadjust load according to time-of-use rates or demand-response feedback.Thermostat 600 may analyze all data from the system and integrate energyusage to build efficient control algorithms, make more informeddecisions, or provide more effective suggestions and tips. In someembodiments, thermostat 600 tailors all derived content to a user'spreferences and past actions and decisions.

Thermostat 600 may adjust existing and create new control algorithmsbased on parameters such as time constraints, user preferences, andoccupancy detected. In some embodiments, thermostat 600 may skipcompressor stages in staging progressions when there is a limited amountof time available for the system to reach the setpoint. For example:Jill is hosting a party, which begins at 1800, today. There is only anhour until the party begins, but the system is expected to transitionfrom 72° F. to 68° F. Thermostat 600 may determine that there is notenough time for the standard staging progression, and skip from a lowstage to a high stage in order to meet the deadline for reaching thesetpoint.

Thermostat 600 may adjust control algorithms based on a user's indicatedpreference for comfort or efficiency. In some embodiments, thermostat600 participates in demand-response based on occupancy levels,appropriately restricting or permitting energy usage depending ondetected occupancy. Thermostat 600 may determine occupancy from inputsreceived and command more efficient scheduling when no occupancy isdetected. In some embodiments, thermostat 600 may lengthen run timeswhen a home is unoccupied. Thermostat 600 may adjust scheduling andoperations based on detected activity levels within the home. Thermostat600 may detect that a user is not home if she has been tagged in anevent hosted in a location different from home. For example, if Jill hasbeen tagged in an event at George's house, thermostat 600 may determinethat Jill is not home, and that the home is unoccupied. In someembodiments, thermostat 600 may determine that a user is not home if anysocial media platform has indicated that they are in a location otherthan home.

Thermostat 600 may receive weather input upon which a portion of systemcontrols decisions are based. Thermostat 600 may communicate with aweather station, a weather service, or a network from which weather datacan be retrieved. In some embodiments, thermostat 600 may adjustscheduling based on weather forecasts in order to better prepare for theupcoming operating conditions. Thermostat 600 may adjust defrostingoperations based on the forecast. In some embodiments, thermostat 600may detect the minimum temperature which will keep pipes from freezingwhile a home is unoccupied in the winter. Thermostat 600 may receivedata from local sensors outside of the home and adjust conditions basedon outdoor conditions. For example: a desert environment experiences alarge range of temperatures every day; thermostat 600 may preempt steeptemperature changes by anticipating the schedule of the changes andadjusting operation accordingly. Thermostat 600 may detect outdoorconditions and command the condenser to adjust the volume of air drawnfrom the outside to increase efficiency.

Configuration of Exemplary Embodiments

The construction and arrangement of the systems and methods as shown inthe various exemplary embodiments are illustrative only. Although only afew embodiments have been described in detail in this disclosure, manymodifications are possible (e.g., variations in sizes, dimensions,structures, shapes and proportions of the various elements, values ofparameters, mounting arrangements, use of materials, colors,orientations, etc.). For example, the position of elements may bereversed or otherwise varied and the nature or number of discreteelements or positions may be altered or varied. Accordingly, all suchmodifications are intended to be included within the scope of thepresent disclosure. The order or sequence of any process or method stepsmay be varied or re-sequenced according to alternative embodiments.Other substitutions, modifications, changes, and omissions may be madein the design, operating conditions and arrangement of the exemplaryembodiments without departing from the scope of the present disclosure.

The present disclosure contemplates methods, systems and programproducts on any machine-readable media for accomplishing variousoperations. The embodiments of the present disclosure may be implementedusing existing computer processors, or by a special purpose computerprocessor for an appropriate system, incorporated for this or anotherpurpose, or by a hardwired system. Embodiments within the scope of thepresent disclosure include program products comprising machine-readablemedia for carrying or having machine-executable instructions or datastructures stored thereon. Such machine-readable media can be anyavailable media that can be accessed by a general purpose or specialpurpose computer or other machine with a processor. By way of example,such machine-readable media can comprise RAM, ROM, EPROM, EEPROM, CD-ROMor other optical disk storage, magnetic disk storage or other magneticstorage devices, or any other medium which can be used to carry or storedesired program code in the form of machine-executable instructions ordata structures and which can be accessed by a general purpose orspecial purpose computer or other machine with a processor. Combinationsof the above are also included within the scope of machine-readablemedia. Machine-executable instructions include, for example,instructions and data which cause a general purpose computer, specialpurpose computer, or special purpose processing machines to perform acertain function or group of functions.

Although the figures show a specific order of method steps, the order ofthe steps may differ from what is depicted. Also two or more steps maybe performed concurrently or with partial concurrence. Such variationwill depend on the software and hardware systems chosen and on designerchoice. All such variations are within the scope of the disclosure.Likewise, software implementations could be accomplished with standardprogramming techniques with rule based logic and other logic toaccomplish the various connection steps, processing steps, comparisonsteps and decision steps.

What is claimed is:
 1. A thermostat for a building space, the thermostatcomprising: a communications interface configured to receive serviceprovider information via a network connection; an electronic displaycomprising a user interface configured to display the service providerinformation; and a processing circuit configured to determine when todisplay service provider information on the electronic display bymonitoring thermostat events.
 2. The thermostat of claim 1, wherein theprocessing circuit is further configured to: receive the serviceprovider information from a dealer associated with the thermostat;receive new service provider information from a second dealer when thedealer associated with the thermostat changes from a first dealer to thesecond dealer; and display the new service provider information via theelectronic display in response to a determination that the dealerassociated with the thermostat has changed from the first dealer to thesecond dealer.
 3. The thermostat of claim 1, wherein the processingcircuit is further configured to receive the service providerinformation via the communications interface when the thermostat isfirst installed in the building space.
 4. The thermostat of claim 1,wherein the service provider information comprises customized branding,the customized branding comprising at least one of: a dealer phonenumber; a dealer address; dealer store hours; a dealer RSS feed; and adealer logo.
 5. The thermostat of claim 1, wherein the processingcircuit is further configured to receive the service providerinformation via the communications interface when a dealer creates newbranding and serves the new branding to the thermostat via thecommunications interface.
 6. The thermostat of claim 1, wherein theprocessing circuit is further configured to: cause the electronicdisplay to display a button to contact a dealer; detect a user pressingthe button; place a call to the dealer through voice over Internet inresponse to detecting the user pressing the button; and transmittingcommunications between the user and the dealer using at least one of amicrophone and a speaker of the thermostat.
 7. The thermostat of claim1, wherein the processing circuit is configured to determine when todisplay dealer information on the electronic display by monitoringthermostat events; wherein the thermostat events comprise at least oneof: a fault occurring in the thermostat; a fault occurring in equipmentconnected to the thermostat; detecting that maintenance is due for thethermostat; detecting that maintenance is due for the connectedequipment; determining that a threshold time has passed since the dealerinformation was last displayed; and determining that a user is adjustingsettings in the thermostat for a time longer than a predetermined amountof time.
 8. The thermostat of claim 1, wherein the service providerinformation comprises advertisements, the advertisements; wherein theprocessing circuit is configured to select the advertisements based onat least one of: a schedule of the thermostat; and an ambienttemperature.
 9. The thermostat of claim 1, wherein the processingcircuit is further configured to collect revenue information and servethe revenue information to a dealer via the communications interface,the revenue information comprising at least one of: number of servicecalls placed; number of technician visits to the building; advertisingrevenue; and equipment and parts purchased.
 10. A method for operating anetwork branded thermostat, the method comprising: receiving customizedbranding via a network connection of the thermostat; determining when todisplay the customized branding on the electronic display by monitoringthermostat events; and displaying the customized branding on anelectronic display of the thermostat in response to detecting one ormore of the thermostat events.
 11. The method of claim 10, wherein themethod further comprising receiving the customized branding via thenetwork connection when the thermostat is first installed in a buildingspace.
 12. The method of claim 10, the method further comprisingreceiving new customized branding from a second dealer when a dealerassociated with the thermostat changes from a first dealer to the seconddealer.
 13. The method of claim 10, wherein the customized brandingcomprising at least one of: a dealer phone number; a dealer address;dealer store hours; a dealer RSS feed; and a dealer logo.
 14. The methodof claim 10, further comprising receiving customized branding via thenetwork connection when a dealer creates new branding and serves the newbranding to the thermostat via the network connection.
 15. The method ofclaim 10, the method further comprising collecting revenue informationand serving the revenue information to a dealer via the networkconnection, the revenue information comprising: number of service callsplaced; number of technician visits to the building; advertisingrevenue; and equipment and parts purchased.
 16. A dealer configuredthermostat for a building space, the thermostat comprising: acommunications interface configured to receive dealer information via anetwork connection; an electronic display comprising a user interfaceconfigured to display the dealer information; and a processing circuitconfigured to determine when to display the dealer information on theelectronic display by monitoring events of the thermostat.
 17. Thethermostat of claim 16, wherein the dealer information comprises atleast one of: a dealer phone number; a dealer address; dealer storehours; a dealer RSS feed; and a dealer logo.
 18. The thermostat of claim16, wherein the processing circuit is further configured to: cause theelectronic display to display a button to contact a dealer; detect auser pressing the button; place a call to the dealer through voice overInternet in response to detecting the user pressing the button; andtransmitting communications between the user and the dealer using atleast one of a microphone and a speaker of the thermostat.
 19. Thethermostat of claim 16, wherein the processing circuit is furtherconfigured to collect revenue information and serve the revenueinformation to a dealer via the communications interface, the revenueinformation comprising: number of service calls placed; number oftechnician visits to the building; advertising revenue; and equipmentand parts purchased.
 20. The thermostat of claim 16, wherein theprocessing circuit is further configured to: receive customized brandingfrom a dealer associated with the thermostat; receive new customizedbranding from a second dealer when the dealer associated with thethermostat changes from a first dealer to the second dealer; and displaythe new customized branding via the electronic display in response to adetermination that the dealer associated with the thermostat has changedfrom the first dealer to the second dealer.